在下面的字符串中,正则表达式将匹配两个条件
aa="192.168.251.135,henry,thesecond,0"
aa1="192.168.254.35,henry,0"
#The below regular expression would satisfy bot aa and aa1
re.findall(r"(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b),((?:\w+,\w+|\w+)),(\d+)",aa)
我的问题是在字符串ab="192.168.251.135,henry,thesecond,"
中如果结尾不存在整数,是否可以通过扩展上面的re.findall()
答案 0 :(得分:0)
你的问题令人困惑。如果我的理解是正确的,即使字符串没有以数字结尾,您也希望匹配字符串。这只是意味着您需要更改正则表达式,以便重复最后一个数字匹配是0次或更多次而不是1次或更多次
>>> re.findall(r"(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b),((?:\w+,\w+|\w+)),(\d*)",ab)
[('192.168.251.135', 'henry,thesecond', '')]
>>>
有趣的是,没有正则表达式,你可以很容易地做到这一点
>>> if not ab.rpartition(",")[-1].isdigit():
ab+='1'
答案 1 :(得分:0)
使用str.isdigit()
。
if not aa[-1].isdigit():
aa += '1'