鱼C论坛

 找回密码
 立即注册
查看: 1971|回复: 3

[已解决]正则表达式表示1-100的整数

[复制链接]
发表于 2023-8-2 17:23:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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


最佳答案
2023-8-2 17:24:11
问题:我要把0排除掉,r'[1-9]?\d?$|100$'  这里需要怎么改?

要将0排除在表示1-100的整数的正则表达式中,可以对原有的正则表达式进行如下修改:
  1. r'[1-9]\d?$|100$'
复制代码

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

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

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

如果回答对你有帮助,请给我一个最佳答案!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-8-2 17:24:07 | 显示全部楼层
你好!要排除掉0,你可以将正则表达式进行以下修改:

  1. r'(?!0$)[1-9]?\d?$|100$'
复制代码


这个修改后的正则表达式使用了负向前瞻断言  (?!0$) ,它会匹配任何不以 0 结尾的字符串,这样就排除了以 0 开头的数字。其他部分保持不变,仍然可以匹配 1 到 100 的整数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-2 17:24:09 | 显示全部楼层
要将0排除掉,可以修改正则表达式为[1-9]|[1-9][0-9]$|100$。这样的正则表达式将匹配1到9之间的单个数字、10到99之间的两位数以及100。这样就不会匹配到0了。

下面是修改后的代码示例:
  1. import re
  2. s = '0'
  3. result = re.match(r'[1-9]|[1-9][0-9]$|100$', s)
  4. print(result)
复制代码

运行结果将返回None,表示没有匹配到符合条件的字符串。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-2 17:24:11 | 显示全部楼层    本楼为最佳答案   
问题:我要把0排除掉,r'[1-9]?\d?$|100$'  这里需要怎么改?

要将0排除在表示1-100的整数的正则表达式中,可以对原有的正则表达式进行如下修改:
  1. r'[1-9]\d?$|100$'
复制代码

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

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

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

如果回答对你有帮助,请给我一个最佳答案!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 07:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表