【问题标题】:Regex for avoiding basic math operators避免基本数学运算符的正则表达式
【发布时间】:2020-01-27 15:10:40
【问题描述】:

我需要一个正则表达式(java)来满足以下条件:- 字符串将以 $ 开头,并且不能包含基本的数学运算符“+ -”。如果出现这些,它应该返回“false”。我用过

(\\S).*[^+\\-]

同样的

我的测试用例是:

$india
$india+
$india+my

这对于前两个条件是可以的,要么导致第一个为真,第二个为假(因为 + 在那里)。但对于第三种情况它失败了。不是显示为假,而是一直显示为真。

【问题讨论】:

  • \$[^+-]+ 似乎是你想要的。 regex101.com/r/EgctE3/1
  • 我试过了,但在第三个条件下还是不行
  • 您可以在我的评论中的 regex101 链接中看到它与您所说的第三个字符串不匹配。请发布您正在使用的确切代码。
  • @jrook 您的演示中有锚点不在您的评论中,这就是它在 OPs 代码中不起作用的原因
  • @jrook 抱歉,我的意思是您的演示是正确的,但您在评论中发布的正则表达式不是因为它缺少使其正常工作所需的锚

标签: java regex


【解决方案1】:

^\$[^+-]+$

这三个都适用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2017-09-26
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    相关资源
    最近更新 更多