我一直在尝试为非常简单的字符串编写正则表达式但是无法这样做:
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
答案 0 :(得分:2)
这将匹配"至少一个字然后'价格'然后至少有一个词":
(\\w+\\s+)+price(\\s+\\w+)+
答案 1 :(得分:2)
此正则表达式应与您的字符串匹配:
"(\\w+\\s)+(price)(\\s\\w+)+"