我在 Java 中尝试了这个正则表达式:
Pattern orderCheck = Pattern.compile("^([\\-\\+])?(created|title|price|creation)$", Pattern.CASE_INSENSITIVE);
orderCheck.matcher(value).matches();
奇怪的是:
- 创作:作品
- -创建:作品
- +已创建:不起作用
- 标题:作品
- -标题:作品
- +标题:不起作用
- 等等..
+ 结果是正则表达式的未验证,但我不明白为什么。
使用这个online regex tester ,对于所有值来说它都完美地工作!
我也尝试过这个变体,但没有成功:
- ^[\-\+]?(创建|标题|价格|创建)$
- ^[-+]?(创建|标题|价格|创建)$
- ^(-+)?(创建|标题|价格|创建)$
- ^(-|+)?(创建|标题|价格|创建)$
- ^[-|+]?(创建|标题|价格|创建)$
- ^(\-|\+)?(创建|标题|价格|创建)$
满足我的需要的正确正则表达式是什么?我看不出我哪里错了。
最佳答案
它有效。也许您忘记了值末尾/开头的空格字符?你的模式看起来不错。
关于java - 使用正则表达式解析文本适用于在线测试,但不适用于此代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9364000/