目前,我们使用正则表达式([^=]*)(=[01])
匹配用户输入。用户键入一个信号名称(nnnann,其中n是数字,a是字母数字字符)及其值,即0或1.
示例:101e10 = 1
现在我们必须扩展解析器以匹配模式t = N,其中N表示数字。
示例:t = 5000
我尝试使用([^=]*)(=[01])|(^t)(=[0-9]*)
扩展正则表达式以匹配两种情况,但是使用此表达式,第一部分已匹配模式t = N.
如何排除 t 模式与表达式[^=]*
的第一部分匹配?
我已经尝试使用([^=]-[t]*)(=[01])|(^t)(=[0-9]*)
或([^=]*-[t])(=[01])|(^t)(=[0-9]*)
减去模式,但两者都没有做到。此外,我觉得两次尝试都没有正确使用减法功能。
答案 0 :(得分:1)
我认为你需要这样的东西:
(?:([0-9][^=]*)(=[01])|(t)(=[0-9]*))
答案 1 :(得分:1)
您可以修改第一个正则表达式,以便对其验证更加严格。
([01]{3}[a-z][01]{2})(=[01])
然后与你的第二个正则表达式结合:
([01]{3}[a-z][01]{2})(=[01])|(^t)(=[0-9]*)
或者,因为您知道第一种格式以0或1开头,您可以这样做:
(^[01][^=]*)(=[01])|(^t)(=[0-9]*)