Java简单正则表达式错误

时间:2014-05-07 13:17:04

标签: java regex

我一直在尝试为非常简单的字符串编写正则表达式但是无法这样做:

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 个答案:

答案 0 :(得分:2)

这将匹配"至少一个字然后'价格'然后至少有一个词":

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

答案 1 :(得分:2)

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

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