python上的正则表达式只选择一位数字

时间:2018-12-07 04:20:47

标签: python regex

我希望只选择一个个数字
在Windows python上,使用日语unicode,我已经完成

s = "17 1 27歳女1"
re.findall(r'[1-7]\b', s)

我需要匹配1中的第二个1和最后一个s-而不是初始的17 1
所需的输出:

['1', '1'] 

2 个答案:

答案 0 :(得分:3)

尝试使用negative-lookbehind (?<!\d)。如果数字前面有另一个数字,则该匹配将被忽略,即:

import re

s = "17 1 27歳女1"
x = re.findall(r"(?<!\d)[1-7]\b", s)
print(x)
# ['1', '1']

Regex Demo
Python Demo


正则表达式说明

enter image description here

答案 1 :(得分:2)

这是您要查找的正则表达式:

(?<!\d)[1-7](?!\d)

测试:

import re
s="17 1 27歳女1"
re.findall(r'(?<!\d)[1-7](?!\d)', s)

输出:

['1', '1']