gpt4 book ai didi

java - 正则表达式 - 禁止某些字符连续出现

转载 作者:行者123 更新时间:2023-12-02 10:47:36 25 4
gpt4 key购买 nike

我不确定这是否可能:

编写一个程序将中缀表示法转换为后缀表示法。到目前为止一切进展顺利,但尝试实现验证却很困难。

我正在尝试使用正则表达式来验证中缀表示法,并遵守以下规则:

  1. 字符串只能以数字或((程序不允许负数)开头
  2. 字符串只能以数字或 结尾
  3. 字符串只能包含 0-9*/()-+
  4. 字符串不得允许以下字符一起出现+*/-

我有一个符合前 3 条规则的正则表达式:

(^[0-9(])([0-9+()*]+)([0-9)]+$)

是否可以使用正则表达式来实现最后一条规则?

最佳答案

我只会回答第四条规则,因为您只对它有问题。

是的,有这种可能性,但我认为正则表达式不是检查这一点的合适工具......

此模式 ^(?(?=.*\+)(?!.*[\*\/-])).+$ 将匹配任何包含 + 的字符串 并且不包含其他字符:/*-。一个字就已经很长,很难读了。 See demo .

它使用条件表达式(?...)来检查+的前瞻检查是否成功,如果成功,则负前瞻确保您不会包含任何 \*- 字符。

对于所有字符,正则表达式将变得非常大并且难以维护。

这就是为什么我不推荐它来完成这项任务。

关于java - 正则表达式 - 禁止某些字符连续出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52442699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com