我想创建正则表达式,以防止输入使用0和9形成的数字0000 0000
或99999 99999
。
我已经尝试过this,它的工作准确度是80%。虽然它也允许使用0和9的组合形成数字,例如。 0000 9999
为此,我需要指导以防止输入0和9的总和。
更新:我试图防止使用0
或9
创建的独立编号,换句话说,999999999
9999 9999
9999999 9
9 9999999
和000000000
0000 0000
0000000 0
0 0000000
是不可接受的输入。
但是,可以接受909090909
009 00990
000 99999
999900000
123456879
555228899
等。
谢谢
我的猜测是,也许这两个语句可能对解决问题有所帮助:
(?=.*0)(?=.*9)
例如,基于此我们可以编写一些简单的表达式,例如:
(?=.*0)(?=.*9)^[09]+\s?[09]+$
如果要简化/更新/探索表达式,请在regex101.com的右上角进行说明。如果您有兴趣,可以观看匹配的步骤或在this debugger link中进行修改。调试器演示了a RegEx engine如何逐步使用一些示例输入字符串并执行匹配过程。
[您可以对包含全零和空格或全九和空格的字符串使用正负表达式,然后在数字和空格字符串上进行匹配,即]]
^(?![0 ]+$)(?![9 ]+$)([\d ]+)$
如果要强制数字中只能有一个空格,请为此添加一个正向前瞻:
^(?![0 ]+$)(?![9 ]+$)(?=[^ ]* ?[^ ]*$)([\d ]+)$