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 アドレスの後に単語を見つける方法、つまり、outout は再びMarry,had ,a,alittle,lamb11

  3. 上記の 2 番目の例では、文字列が数字で終わっているかどうかを調べる方法を示しています。

4

3 に答える 3

3

()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)

つまり、文字列全体(.*)を照合してから、バックトラックして最後の文字($文字列の末尾に一致するを使用)が数字であるかどうかをテストします。

于 2012-04-06T10:44:53.253 に答える
1

カンマを含む単語を見つけてください。それが私がこの文を理解する方法です。

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

ディジットで終わる:

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

うーん。例はあまり明確ではありませんが、例 #2 のように、 text 、コンマ、スペース文字のみを一致させ、数字を無視したいですか? これはどう:

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

「文字列が数字で終わっている場合」がよくわかりませんでした。それは、数字で終わる場合にのみ「Mary...」と一致させたいということですか? 次に、次のようになります。

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