nvli123 发表于 2023-8-2 17:23:59

正则表达式表示1-100的整数

>>> s='0'
>>> result = re.match(r'?\d?$|100$', s)
>>> print(result)
<re.Match object; span=(0, 1), match='0'>

我要把0排除掉,r'?\d?$|100$'   这里需要怎么改


isdkz 发表于 2023-8-2 17:24:07

你好!要排除掉0,你可以将正则表达式进行以下修改:

r'(?!0$)?\d?$|100$'


这个修改后的正则表达式使用了负向前瞻断言(?!0$) ,它会匹配任何不以 0 结尾的字符串,这样就排除了以 0 开头的数字。其他部分保持不变,仍然可以匹配 1 到 100 的整数。

Mike_python小 发表于 2023-8-2 17:24:09

要将0排除掉,可以修改正则表达式为|$|100$。这样的正则表达式将匹配1到9之间的单个数字、10到99之间的两位数以及100。这样就不会匹配到0了。

下面是修改后的代码示例:


import re

s = '0'
result = re.match(r'|$|100$', s)
print(result)


运行结果将返回None,表示没有匹配到符合条件的字符串。

学习编程中的Ben 发表于 2023-8-2 17:24:11

问题:我要把0排除掉,r'?\d?$|100$'这里需要怎么改?

要将0排除在表示1-100的整数的正则表达式中,可以对原有的正则表达式进行如下修改:

r'\d?$|100$'


这样修改后的正则表达式可以确保匹配的数字不以0开头。具体解释如下:

- :匹配以1到9之间的任意数字开头。
- \d?:匹配0个或1个数字(0-9)。
- $:表示匹配字符串的结尾。
- |:表示或的关系。
- 100$:匹配数字100。

以上修改后的正则表达式可以确保匹配的数字为1到100之间的整数,并且不包含0。

如果回答对你有帮助,请给我一个最佳答案!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 正则表达式表示1-100的整数