2

我用java写了一个正则表达式程序。我认为这是真的,但结果是不同的。请帮我解决这个问题。

我的代码:

String text    ="My wife back me up over my decision to quit my job";

String patternString = "[/w/s]*back(\\s\\w+\\s)*up[/w/s]*.";

Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);

Matcher matcher = pattern.matcher(text);

boolean matches = matcher.matches();

System.out.println("matches = " + matches);

输出:匹配=假

我是java编程新手。我想用正则表达式编写一个程序来测试输入句子中“备份”的匹配。

感谢您的关注。

4

2 回答 2

3

我认为你的模式应该是这样的:

String patternString = "[\\w\\s]*back(\\s\\w+\\s)*up[\\w\\s]*.";
于 2013-03-23T08:05:09.713 回答
1

您正在使用正斜杠而不是反斜杠:

String patternString = "[/w/s]*back(\\s\\w+\\s)*up[/w/s]*.";
                         ^ ^                       ^ ^

两者不可互换(不要忘记反斜杠需要加倍)。

于 2013-03-23T07:58:50.490 回答