我在java中编写了一个regEx程序。我认为这是真的,但结果却不同。请帮我解决这个问题。
我的代码:
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);
输出: matches = false
我是java编程的新手。我想用regEx编写一个程序来测试输入句子中“备份”的匹配。
感谢您的关注。
答案 0 :(得分:3)
我认为你的模式应该是这样的:
String patternString = "[\\w\\s]*back(\\s\\w+\\s)*up[\\w\\s]*.";
答案 1 :(得分:1)
您正在使用正斜杠而不是反斜杠:
String patternString = "[/w/s]*back(\\s\\w+\\s)*up[/w/s]*.";
^ ^ ^ ^
这两个不可互换(不要忘记反斜杠需要加倍)。