我想*instance*stuck*
在一个句子中匹配一个模式,实例和卡住之间的单词数可以是 1 到 3。我如何用 Java 中的正则表达式编写这个模式?
例如:
- “实例卡住”将匹配模式
- “刚刚被卡住的实例”将匹配模式
- “xyz 的服务器 123 中的实例被卡住”将与模式不匹配
您可以尝试以这种方式进行测试
String s1 = "The instance just got stuck";
String s2 = "The instance in the server 123 at xyz is stuck";
System.out.println(s1.matches(".*instance (\\w+\\s+){1,3}stuck.*")); // true
System.out.println(s2.matches(".*instance (\\w+\\s+){1,3}stuck.*")); // false
\\w
匹配任何字母数字字符,就像[a-zA-Z0-9]
\\s
是空格类
+
意味着+
必须至少找到一次之前的元素。
试试这个:instance( \w+){1,3} stuck
也许:
instance (\w* ){0,3}stuck
这也将匹配古怪的空白:
instance\s*(\w*\s*){0,3}stuck