我正在尝试创建一个满足以下条件的正则表达式:
一个或两个或三个十进制数。
十进制数内没有前导零。
精确度2.
允许适当的分数(0 .__数字)。
十进制数字前没有文字
正则表达式应符合以下条件:
正则表达式不应与以下内容匹配:
我想出了以下正则表达式:
(?<!.)^([1-9][0-9]{0,2}\.[0-9][0-9])$
它满足以上除分数之外的所有内容。
如果十进制数字有2或3位数,我不想要前导零。但是,如果它是合适的分数,我确实希望允许0 .__。
但是,我的正则表达式与“0 .__”十进制数字不匹配,因为它希望数字从“^[1-9]
”开始为1。
请告知我如何修改我的正则表达式以匹配“0 .__”数字。
答案 0 :(得分:4)
答案 1 :(得分:1)
答案 2 :(得分:0)
答案 3 :(得分:0)
假设您正在使用re.match,这是您可以使用的最短时间:
(?!0)\d{1,3}\.\d{2}
如果您使用搜索:
^(?!0)\d{1,3}\.\d{2}$
您不需要以不同方式处理第一个数字,因此您可以使用\ d(与[0-9]相同)并确保第一个字符不为0且具有负前瞻(?!0 )。