我正在尝试为可以接受以下内容的输入创建一个模式,但我对正则表达式不是很好。有人可以帮我制作以下值的正则表达式。
1
.25
0.25
答案 0 :(得分:2)
我猜一个对你有用的表达式是:
^(\.\d+|\d+(?:\.\d+)?)$
|
是一个或。
^
是字符串的开头。
$
是结尾。
\.
是文字.
。
\d
是一个数字。
+
是一个量词,表示前一个字符/组中的一个或多个。
?
使上一组/字符可选。
所以\.\d+
是.
,然后是任意数量的数字。然后\d+(?:\.\d+)?
是一个数字,后跟可选的小数值。
正则表达式演示:https://regex101.com/r/uG2tT4/1
根据您使用此修饰符的位置,可能需要m
和/或g
修饰符。此外,\d
可能需要转换为数字字符类[0-9]
。
答案 1 :(得分:0)
从'通用正则表达式'(所有语言中的所有实现),它将是安全的
\d*\.\d*
这简单地分解为
\d* = Match for 0 or more digits at the beginning
\. = After that match for a period (notice that we escaped the period.
Not escaping the period has a different meaning altogether.)
\d* = Match for another set of one or more digits
这旨在简化正则表达式,虽然它可能不是最有效的,特别是如果它适用于大型集合
有关正则表达式的教程,我可以建议RegularExpressions.info
或查看Derek Banas关于Youtube上正则表达式的视频教程