使用正则表达式解析文本适用于在线测试但不适用于此代码

时间:2012-02-20 15:49:41

标签: java regex

我在Java中尝试了这个正则表达式:

Pattern orderCheck = Pattern.compile("^([\\-\\+])?(created|title|price|creation)$", Pattern.CASE_INSENSITIVE);
orderCheck.matcher(value).matches();
奇怪的是:

  • 已创建:有效
  • -created:有效
  • + created:无效
  • 标题:有效
  • -title:有效
  • + title:不起作用
  • 等。

+结果作为正则表达式的非验证,但我无法理解为什么。

使用此online regex tester,它可以完美地运行所有值!

我也试过这个变种,但没有成功:

  • ^ [\ - \ +](在|标题|价格|创建)$
  • ^ [ - +](在|标题|价格|创建)$
  • ^( - +)?(创建|标题|价格|创建)$
  • ^( - | +)?(创建|标题|价格|创建)$
  • ^ [ - | +](在|标题|价格|创建)$
  • ^(\ - | \ +)?(创建|标题|价格|创建)$

根据我的需要,正确的正则表达式是什么?我看不出我错在哪里:/

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

有效。也许你在价值的最后/开头忘了一个太空炭?你的模式似乎没问题。也许需要休息一下,先上床睡几个小时:o)

test res