- 此问题已在此处有答案**:
Regex for numbers only(20个回答)
9天前关闭
我对正则表达式的理解已经超出了我的能力范围。我需要一个正则表达式来确定一个字符串是否包含:
仅字母:样品
或
仅数字:-0.1、-0.1、-1、123、+123、+1.23
但是
没有混合字母和数字:A123,12-a
无其他特征:_,.(,12_3
结果可以是TRUE或FALSE。
谢谢大家!
Regex for numbers only(20个回答)
9天前关闭
我对正则表达式的理解已经超出了我的能力范围。我需要一个正则表达式来确定一个字符串是否包含:
仅字母:样品
或
仅数字:-0.1、-0.1、-1、123、+123、+1.23
但是
没有混合字母和数字:A123,12-a
无其他特征:_,.(,12_3
结果可以是TRUE或FALSE。
谢谢大家!
2条答案
按热度按时间n7taea2i1#
对2个主要选项使用交替,对数字使用进一步的交替以防止空白输入匹配:
参见live demo。
Regex细分:
^(...)$
开始和结束锚点 Package 所有其他内容,因此整个输入必须匹配[a-zA-Z]+
一个或多个字母(任何情况)|
逻辑或[+-]?
可选+
或-
\d+(\.\d+)?
数字,可选后跟点,然后是数字\.\d+
a dot then digit(s)后两点分别要求;乍一看,似乎
\d*(\.\d+)?
就足够了,但它匹配空白输入。ttvkxqim2#
谢谢你,波西米亚人!很好用。我从来没有使用过正则表达式,但你的分解帮助。我在它上面增加了一个大小写,用来检测以小数结尾的数字(比如“123”)。
^([a-zA-Z]+|[+-]?(\d+(.\d+)?|.\d+|\d+.))$