gpt4 book ai didi

python - 为什么我在 Python 中的正则表达式不捕获整数?

转载 作者:行者123 更新时间:2023-11-28 21:23:06 25 4
gpt4 key购买 nike

我正在使用正则表达式查找未使用 0x 重新修复的数字序列。

例如。

0
50505
20201
0012

我的正则表达式是 (?:[^(0x)]\d+),它(在我的脑海中)转换为匹配任何不是以 0x 开头的数字序列>。但这不起作用 - 我错误地做了什么假设?

最佳答案

正则表达式中的

[^(0x)] 匹配任何不是 (, 0, x, ).

使用负面回顾:

>>> re.findall(r'(?<!0x)\d+\b', '0 0x111 50505 20201 0012')
['0', '11', '50505', '20201', '0012']

来自 http://docs.python.org/2/library/re.html

(?<!...)

Matches if the current position in the string is not preceded by a match for .... This is called a negative lookbehind assertion. Similar to positive lookbehind assertions, the contained pattern must only match strings of some fixed length. Patterns which start with negative lookbehind assertions may match at the beginning of the string being searched.


更新

使用以下正则表达式:

>>> re.findall(r'\b\d+\b', '0 0x111 50505 20201 0012')
['0', '50505', '20201', '0012']

关于python - 为什么我在 Python 中的正则表达式不捕获整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com