2012-04-06 67 views
2

在下面的字符串,如何搭配的話,包括逗號蟒蛇正則表達式匹配逗號

  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. 在上面的第二個示例中,如何查找字符串是否以數字結尾。

+0

我已經編輯請看看它.. – Rajeev 2012-04-06 10:43:58

回答

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) 

也就是說,你的整個字符串(.*)匹配,然後原路返回,以測試的最後一個字符(使用$,它匹配字符串的結尾)是一個數字。

+0

第三個怎麼樣..用數字結束? – Rajeev 2012-04-06 10:45:54

+0

我編輯了我的答案。 – 2012-04-06 10:51:37

1

找到的話,包括逗號,這就是我理解這句話:

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

與didgit結束:

"[0-9]+$" 
0

嗯。這些例子並不十分清楚,但在例子#2中,你只想匹配文本,逗號,空格和忽略數字嗎?這個怎麼樣:

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

我不太明白「如果字符串以數字結尾」。這是否意味着你只想匹配'瑪麗......'如果它以數字結尾?然後,這看起來像這樣:

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

什麼是(?i) – Rajeev 2012-04-06 10:53:30

+0

它使正則表達式'i'不敏感。 – 2012-04-06 11:12:05