模式匹配器有效数量 java
Pattern Matcher valid number java
我想进行号码验证。规则是:
- 一个数字可以以+或-开头,也可以不开头(被视为正数)
- 不能以 0 开头
- 也可以有小数。或者,
- 不能以 0 结尾
所以可接受的数字是:+123、-123、123、1023、123.03、123,03。
不可接受的数字是:001、1.000、任何字母
我给你我到目前为止在 Dan 的工具上构建的表达式。除了分数后面的表达式,我几乎掌握了所有内容。每一个帮助都是可以接受的。
表达式:(^(\+|-?)([1-9]+))([0-9]+)(\.|,?)
提前致谢
尼克斯
除了您的模式中缺少的小数部分,您的正则表达式不会匹配单个数字,因为您使用 +
量词量化 [1-9]
和 [0-9]
至少需要一个字符
您可以使用
^[+-]?[1-9][0-9]*(?:[.,][0-9]*[1-9])?$
参见 regex demo and the regex graph:
详情
^
- 字符串开头
[+-]?
- 可选的 +
或 -
[1-9]
- 单个 non-zero 数字
[0-9]*
- 零个或多个数字
(?:[.,][0-9]*[1-9])?
- 可选的小数部分:.
或 ,
然后零个或多个数字后跟单个 non-zero 数字
$
- 字符串结尾。
我想进行号码验证。规则是:
- 一个数字可以以+或-开头,也可以不开头(被视为正数)
- 不能以 0 开头
- 也可以有小数。或者,
- 不能以 0 结尾
所以可接受的数字是:+123、-123、123、1023、123.03、123,03。 不可接受的数字是:001、1.000、任何字母
我给你我到目前为止在 Dan 的工具上构建的表达式。除了分数后面的表达式,我几乎掌握了所有内容。每一个帮助都是可以接受的。
表达式:(^(\+|-?)([1-9]+))([0-9]+)(\.|,?)
提前致谢 尼克斯
除了您的模式中缺少的小数部分,您的正则表达式不会匹配单个数字,因为您使用 +
量词量化 [1-9]
和 [0-9]
至少需要一个字符
您可以使用
^[+-]?[1-9][0-9]*(?:[.,][0-9]*[1-9])?$
参见 regex demo and the regex graph:
详情
^
- 字符串开头[+-]?
- 可选的+
或-
[1-9]
- 单个 non-zero 数字[0-9]*
- 零个或多个数字(?:[.,][0-9]*[1-9])?
- 可选的小数部分:.
或,
然后零个或多个数字后跟单个 non-zero 数字$
- 字符串结尾。