正则表达式始终返回false

时间:2018-01-26 18:08:43

标签: java regex string pattern-matching

我有一个问题需要一个正则表达式才能开始工作。

我使用XMLRPC库从wiki获取信息。

到目前为止一切顺利。

将数据检索到字符串变量后,我想使用正则表达式进行搜索,但匹配器将始终返回“false”。

但是如果我问String .... contains(“xyz”);答案是对的。

字符串看起来像这样:

  

====== Datensicherheit ======'''Kriterium v​​on Sicherheit''类型:technisch定义:\ // Allgemein .........

String regex = "Definition";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
System.out.println(matcher.matches());

有人知道我做错了吗?

2 个答案:

答案 0 :(得分:0)

注意matches()如果且仅当整个区域序列与此匹配器的模式匹配时才返回true。请参阅java doc @ https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#matches()

所以,只有当整个“文本”区域与“定义”匹配时才会出现这种情况,这不太可能:)。

尝试使用find(),如果且仅当从给定索引开始的输入序列的子序列与此匹配器的模式匹配时才会为真。

答案 1 :(得分:0)

这是您的正则表达式的问题。如果您想知道字符串是否包含"定义",您的正则表达式必须是:

String regex = ".*Definition.*";