用于匹配除逗号分隔数字以外的所有字符的正则表达式
RegEx for matching all chars except for comma separated digits
我有一个要应用验证的输入。用户可以键入以逗号分隔的任何整数(正数或负数)。我要
允许输入的一些示例:
1,2,3
-1,2,-3
3
4
22,-33
禁止输入的一些示例:
1,,2
--1,2,3
-1,2,--3
asdas
[]\%
我对正则表达式了解一点,我尝试了很多方法,但它们都不是很好see this inline regex checker:
^[-|\d][\d,][\d]
您可以使用
^(?:-?[0-9]+(?:,(?!$)|$))+$
https://regex101.com/r/PAyar7/2
-?
- 可选 -
[0-9]+
- 重复数字
(?:,(?!$)|$))
- 在数字之后,匹配逗号或字符串结尾。匹配逗号时,请确保您不在带有 (?!$)
的字符串末尾
根据您的要求,我会使用像
这样简单的东西
^-?\d+(?:,-?\d+)*$
开始 ^
一个 optional minus -?
followed by \d+
one or more digits。
后跟 (?:,-?\d+)*
一个包含逗号的 quantified non capturing group,后跟一个可选的连字符,然后是一个或多个数字,直到 $
结束。
See your updated demo at regex101
另一个可能更难理解且效率较低的方法:
^(?:(?:\B-)?\d+,?)+\b$
quantified non capturing group 包含另一个可选的非捕获组,连字符前面是 非单词边界 ,后跟 1 个或多个数字,然后通过可选的逗号。
\b
$
末尾的 word boundary 确保字符串必须以 单词字符 结尾(这里只能是数字)
你可以测试这个here at regex101
我有一个要应用验证的输入。用户可以键入以逗号分隔的任何整数(正数或负数)。我要
允许输入的一些示例:
1,2,3
-1,2,-3
3
4
22,-33
禁止输入的一些示例:
1,,2
--1,2,3
-1,2,--3
asdas
[]\%
我对正则表达式了解一点,我尝试了很多方法,但它们都不是很好see this inline regex checker:
^[-|\d][\d,][\d]
您可以使用
^(?:-?[0-9]+(?:,(?!$)|$))+$
https://regex101.com/r/PAyar7/2
-?
- 可选-
[0-9]+
- 重复数字(?:,(?!$)|$))
- 在数字之后,匹配逗号或字符串结尾。匹配逗号时,请确保您不在带有(?!$)
的字符串末尾
根据您的要求,我会使用像
这样简单的东西^-?\d+(?:,-?\d+)*$
开始
^
一个 optional minus-?
followed by\d+
one or more digits。后跟
(?:,-?\d+)*
一个包含逗号的 quantified non capturing group,后跟一个可选的连字符,然后是一个或多个数字,直到$
结束。
See your updated demo at regex101
另一个可能更难理解且效率较低的方法:
^(?:(?:\B-)?\d+,?)+\b$
quantified non capturing group 包含另一个可选的非捕获组,连字符前面是 非单词边界 ,后跟 1 个或多个数字,然后通过可选的逗号。
\b
$
末尾的 word boundary 确保字符串必须以 单词字符 结尾(这里只能是数字)
你可以测试这个here at regex101