【发布时间】:2017-04-27 09:14:26
【问题描述】:
我正在寻找一个正则表达式来验证评级 (1-10) + 可选文本。 评分是一个小数,有 1 分,可以使用点或逗号分隔符。 后跟一个可选的空格 + 字符串。
有效
- 7
- 7,5
- 7.5
- 7,5 这是我的字符串
- 7.5 你好
无效
- 7,75
- 11
- 7这是我的字符串
- 7.这是我的字符串
- 10.5 字符串
我有这个用于获取十进制值,但我不确定如何获取它后面的可选文本。
^(10|\d)([\.\,]\d{1,1})?$
【问题讨论】:
-
也许
^(?:10|\d)(?:[.,]\d)?(?:\s+.*)?$会按预期工作。但是这里,数字后面需要一个空格。 -
如果空格可能丢失并且您可能输入了
7This is my string之类的输入,请尝试^(?:10|\d)(?:[.,]\d)?(?:[^\d,.].*)?$。但是,7.This is my string将不会得到验证。 -
是否允许使用
0.5和10.3?你说你想匹配1-10,但你的正则表达式匹配0和0.5和10.3 -
@MrMysteryGuest C#
-
或者
^(?:10|[1-9])(?:[.,]\d)?(?:\s+.*)?$对你有用吗?对不起,我迷失了你的要求。数字后面的空格是可选的吗?你写了后跟一个可选空格+字符串,但后来你说7This is my string无效。