gpt4 book ai didi

python正则表达式,空格之间只有数字

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:52 24 4
gpt4 key购买 nike

我有一些字符串,在某个特定索引处我想检查下一个字符是否是由一个或多个空格包围的数字。

例如

这是一个字符串

'some data \n 8 \n more data'

假设我正在迭代字符串,当前位于索引 8,在该位置我想知道下一个字符是否是数字,并且只有数字忽略前后的所有空格。

因此,对于上述特殊情况,它应该告诉我True,对于如下所示的字符串

'some data \n (8 \n more data'

它应该告诉我错误

我尝试了下面的模式

r'\s*[0-9]+\s*'

但它对我不起作用,可能是我使用不当。

最佳答案

您原来的正则表达式不起作用,因为“*”表示“零个或多个匹配项”。相反,您应该使用“+”,这意味着“一个或多个匹配项”。见下文:

>>> import re
>>> s = 'some data \n 8 \n more data'
>>> if re.search("\s+[0-9]+\s+", s): print True
...
True
>>> s = 'some data \n 8) \n more data'
>>> if re.search("\s+[0-9]+\s+", s): print True
...
>>> s = 'some data \n 8343 \n more data'
>>> if re.search("\s+[0-9]+\s+", s): print True
...
True
>>>

如果您只想捕获被一个或多个空格包围的单个数字,请删除“[0-9]”前面的“+”,如下所示:

re.search("\s+[0-9]\s+", s)

关于python正则表达式,空格之间只有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17902884/

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