6

在以下字符串中,如何匹配包括逗号在内的单词

  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地址后面的单词只排除第一个逗号ie,outout再次预计为Marry,had ,a,alittle,lamb11

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

4

3 回答 3

3

在第二个示例中,您只需要捕获(使用())跟随 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)

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

于 2012-04-06T10:44:53.253 回答
1

找到包括逗号在内的单词,这就是我对这句话的理解:

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

以 didgit 结尾:

"[0-9]+$"
于 2012-04-06T10:46:01.050 回答
0

唔。这些例子不是很清楚,但似乎在例子#2中,你只想匹配文本、逗号、空格字符并忽略数字?这个怎么样:

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

我不太明白“如果字符串以数字结尾”。这是否意味着您只想匹配 'Mary...' 如果它以数字结尾?然后看起来像这样:

re.findall('(?i)([a-z, ]+)\d+, process_str)
于 2012-04-06T10:50:04.447 回答