字符串与正则表达式不匹配

AoEAfro

我希望正则表达式检查是否有一个“单词”([a-zA-Z0-9]),如果有括号,则必须在其中一个之后加上(id = [0-9] +)之类的东西这六个“关系”后跟另一个词。单词和关系之间必须至少有一个空格。单词和关系之间以及(,),id,=和数字之间可以有更多的空格。只是三个字符串,以缩短行。

无论我尝试什么,此代码始终显示false:

String first = "\\s[a-zA-Z0-9]+(\\s\\(\\sid\\s=\\s[0-9]+\\s\\))?\\s+";
String second = "(contains|contained-in|part-of|has-part|successor-of|predecessor-of)\\s+";
String third = "[a-zA-Z0-9]+(\\s\\(\\sid\\s=\\s[0-9]+\\s\\))?\\s";
Pattern linePattern = Pattern.compile(first + second + third);

public static void main(String[] args) {
    String a = "apple(id=107) contained-in tree";
    Matcher matcher = linePattern.matcher(a);
    boolean matches = matcher.matches();
    System.out.println(matches);
}
维克多·史翠比维

尝试使用\s*

\s*[a-zA-Z0-9]+(\s*\(\s*id\s*=\s*[0-9]+\s*\))?\s*(contains|contained-in|part-of|has-part|successor-of|predecessor-of)\s+[a-zA-Z0-9]+(\s*\(\s*id\s*=\s*[0-9]+\s*\))?\s*

Pattern linePattern = Pattern.compile("\\s*[a-zA-Z0-9]+(\\s*\(\\s*id\\s*=\\s*[0-9]+\\s*\\))?\\s*(contains|contained-in|part-of|has-part|successor-of|predecessor-of)\\s+[a-zA-Z0-9]+(\\s*\\(\\s*id\\s*=\\s*[0-9]+\\s*\\))?\\s*");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

分割不包含与Java中的正则表达式匹配的相邻字符的字符串

来自分类Dev

正则表达式以匹配Java字符串

来自分类Dev

返回匹配正则表达式的字符串

来自分类Dev

Vim:匹配字符串的正则表达式

来自分类Dev

Java正则表达式匹配字符串

来自分类Dev

匹配任何字符串正则表达式

来自分类Dev

正则表达式匹配空字符串?

来自分类Dev

正则表达式匹配特定字符串

来自分类Dev

Javascript正则表达式匹配不匹配的字符串

来自分类Dev

使用正则表达式匹配字符串?

来自分类Dev

正则表达式-匹配字符串模式

来自分类Dev

正则表达式-仅在中间部分与某些字符串不匹配时匹配

来自分类Dev

正则表达式匹配不包含子字符串的字符串

来自分类Dev

与正则表达式匹配的Java字符串

来自分类Dev

匹配不带正则表达式的字符串

来自分类Dev

正则表达式与字符串不匹配

来自分类Dev

正则表达式匹配不包含字符串的字符串

来自分类Dev

正则表达式不匹配字符串

来自分类Dev

正则表达式后匹配字符串

来自分类Dev

正则表达式匹配子字符串

来自分类Dev

正则表达式匹配逗号或字符串

来自分类Dev

字符串之间的正则表达式匹配

来自分类Dev

正则表达式匹配至少不包含X个字符的字符串

来自分类Dev

使用正则表达式,匹配字符串,然后将整数值不匹配

来自分类Dev

正则表达式-仅在中间部分与某些字符串不匹配时匹配

来自分类Dev

正则表达式惰性匹配与贪婪表达式匹配的字符串不匹配

来自分类Dev

如果字符串与正则表达式匹配,则替换,如果不匹配则添加变量

来自分类Dev

正则表达式与字符串不匹配

来自分类Dev

如何使用正则表达式匹配数字而不匹配字符串?

Related 相关文章

热门标签

归档