有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

正则表达式Java简单正则表达式错误

我一直在尝试为非常简单的字符串编写正则表达式,但未能做到:

x = "abc 10 def price 100 ghi"

我试过正则表达式:

"(\\w\\s)+(price)(\\s\\w)+"

String regex = "(\\w\\s)+(price)(\\s\\w)+";
String test = "abc 10 def price 100 ghi";
System.out.println(test.matches(regex));

它返回false

这个正则表达式应该与上面的字符串匹配,但是在我的例子中,正则表达式与字符串不匹配

非常感谢您的帮助

基本要求是“价格”之前可以有任意数量的单词/数字,而“价格”之后可以有任意数量的单词/数字。虽然价格前后应该有空格,价格前至少有一个单词,价格后至少有一个单词。例如,以下所有字符串都是可接受的:

abc 10de price xyz 
abc 10de price 1000 xyz
abc 10 de price 1000 xyz
abc 10 de de price 1000 xyz

共 (2) 个答案

  1. # 1 楼答案

    这将匹配“至少一个词,然后是‘价格’,然后是至少一个词”:

    (\\w+\\s+)+price(\\s+\\w+)+

  2. # 2 楼答案

    此正则表达式应与字符串匹配:

    "(\\w+\\s)+(price)(\\s\\w+)+"