REGEX帮助确定字符串是全字母还是有效数字[重复]

at0kjp5o  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(212)
    • 此问题已在此处有答案**:

Regex for numbers only(20个回答)
9天前关闭
我对正则表达式的理解已经超出了我的能力范围。我需要一个正则表达式来确定一个字符串是否包含:
仅字母:样品

仅数字:-0.1、-0.1、-1、123、+123、+1.23
但是
没有混合字母和数字:A123,12-a
无其他特征:_,.(,12_3
结果可以是TRUE或FALSE。
谢谢大家!

n7taea2i

n7taea2i1#

对2个主要选项使用交替,对数字使用进一步的交替以防止空白输入匹配:

^([a-zA-Z]+|[+-]?(\d+(\.\d+)?|\.\d+))$

参见live demo
Regex细分:

  • ^(...)$开始和结束锚点 Package 所有其他内容,因此整个输入必须匹配
  • [a-zA-Z]+一个或多个字母(任何情况)
  • |逻辑或
  • [+-]?可选+-
  • \d+(\.\d+)?数字,可选后跟点,然后是数字
  • \.\d+ a dot then digit(s)

后两点分别要求;乍一看,似乎\d*(\.\d+)?就足够了,但它匹配空白输入。

ttvkxqim

ttvkxqim2#

谢谢你,波西米亚人!很好用。我从来没有使用过正则表达式,但你的分解帮助。我在它上面增加了一个大小写,用来检测以小数结尾的数字(比如“123”)。
^([a-zA-Z]+|[+-]?(\d+(.\d+)?|.\d+|\d+.))$

相关问题