python正则表达式匹配逗号

时间:2012-04-06 10:37:30

标签: python regex

在以下字符串中,如何匹配包含逗号

的单词
  1. -

    process_str = "Marry,had ,a,alittle,lamb"
    import re
    
    re.findall(r".*",process_str)
    ['Marry,had ,a,alittle,lamb', '']
    
  2. -

    process_str="192.168.1.43,Marry,had ,a,alittle,lamb11"
    
    import re
    ip_addr = re.findall(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}",l)          
    re.findall(ip_addr,process_str1)
    

    如何在ip地址后面找到除第一个逗号之外的单词 即,再次预计将是Marry,had ,a,alittle,lamb11

  3. 在上面的第二个例子中,如何查找字符串是否以数字结尾。

3 个答案:

答案 0 :(得分:2)

在第二个示例中,您只需捕获(使用())ip后面的所有内容:

 import re

 s = "192.168.1.43,Marry,had ,a,alittle,lamb11"
 text = re.findall(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3},(.*)", s)[0]
 // text now holds the string Marry,had ,a,alittle,lamb11

要查明字符串是否以数字结尾,您可以使用以下内容:

re.match(".*\d$", process_str)

也就是说,匹配整个字符串(.*),然后回溯以测试最后一个字符(使用与字符串结尾匹配的$)是否为数字。

答案 1 :(得分:1)

查找包含逗号的单词,这就是我理解这句话的方式:

>>> re.findall("\w+,*", process_str)
['Marry,', 'had', 'a,', 'alittle,', 'lamb']

以didgit结尾:

"[0-9]+$"

答案 2 :(得分:0)

嗯。示例不太清楚,但在示例#2中,您希望仅匹配文本,逗号,空格和忽略数字?怎么样:

re.findall('(?i)([a-z, ]+), process_str)

我不太明白“如果字符串以数字结尾”。这是否意味着你只想匹配'玛丽......'如果它以数字结尾?那就是这样的:

re.findall('(?i)([a-z, ]+)\d+, process_str)