0
我想写一个正则表达式将只匹配第1季度,qtr2号,qtr3,qtr4有以下的正则表达式[q|qtr|qtrs|quarter]+[1-4]
的帮助,但问题是,如果我问这样的问题:“Ficoscore for Q21 2005”在Q和21之间增加一个空格,即“2005年Q 21的Ficoscore”,这是无效的。正则表达式来限制数字
String regEx = "([q|qtr|qtrs|quarter]+[1-4])";
Pattern pattern = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(userQuerySentence);
System.out.println(matcher.matches());
while (matcher.find()) {
String quarterString = matcher.group();
userQuerySentence = userQuerySentence.replaceAll(quarterString,
(quarterString.substring(0, quarterString.length() - 1) + " " + quarterString.substring(quarterString
.length() - 1)));
}
M42我的字符串会是这样“Ficoscore 2005年第一季度”从此我要改变字符串为“Ficoscore为2005年第1季度“,但与上述正则表达式没有任何匹配。 – 2014-10-01 08:22:23
首先使用'(?i)'不区分大小写的修饰符。 – 2014-10-01 08:23:29
@ M42我认为你不介意编辑。 lang也是java,所以你需要再次逃脱。 – 2014-10-01 08:24:34