1

我想从下面的短语中提取两个单词 FIRST 和 SECOND,我尝试使用这个正则表达式来获取斜线之前的单词,但它不起作用:/顺便说一句,它在 python 上:

 import re 

    data = "12341    O:EXAMPLE (FIRST:/xxxxxx) R:SECOND/xxxxx id:1234"
    data2 = "12341    O:EXAMPLE:FIRST2:/xxxxxx) R:SECOND2/xxxxx id:1234"

    result = re.findall(r'[/]*',data)
    result2 = re.findall(r'[/]*',data2)
    print result,result2 
4

1 回答 1

6

尝试

result = re.findall(r'\w+:?(?=/)',data)

解释:

\w+   # Match one or more alphanumeric characters
:?    # Match an optional colon
(?=/) # Assert that the next character is a slash

如果您不希望冒号成为匹配项的一部分(您的问题对此不清楚),请将可选冒号放入前瞻断言中:

result = re.findall(r'\w+(?=:?/)',data)
于 2013-04-19T13:27:01.707 回答