gpt4 book ai didi

python - 仅检测正则表达式中的数字

转载 作者:行者123 更新时间:2023-12-01 08:56:14 27 4
gpt4 key购买 nike

我有以下正则表达式:

(?<!__num)10\b

当我想从下面的句子中检测到 10

can there be B110\ numbers and 10 numbers in this sentence

返回以下内容

can there be B110\ numbers and 10 numbers in this sentence

但我不希望在110内检测到10,所以我将正则表达式更改为

[^\d+](?<!__num)10\b

在这种情况下,返回的结果是 10 前面有一个空格字符。

我只想识别正则表达式中给出的数字。例如,如果我在正则表达式中用 110 代替 10,则即使前面有“B”,我也希望能够识别 110。那么我该如何构建正则表达式呢?谢谢。

最佳答案

您可以使用

(?<!__num)(?<!\d)10(?!\d)

请参阅regex demo

前两个负向后查找将在字符串和 (?<!__num) 中的同一位置执行将确保没有 __num紧邻当前位置和 (?<!\d) 之前将确保没有数字。

(?!\d)负向先行将确保当前位置之后(给定数字之后)没有数字。

Python demo :

import re
# val = "110" # => <_sre.SRE_Match object; span=(14, 17), match='110'>
val = "10"
s = "can there be B110 numbers and 10 numbers in this sentence"
print(re.search(r'(?<!__num)(?<!\d){}(?!\d)'.format(val), s))
# => <_sre.SRE_Match object; span=(30, 32), match='10'>

关于python - 仅检测正则表达式中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52755514/

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