1

我在 Python 中使用正则表达式。我想在特定模式中最后一次出现空格之前找到字符串。例如在下面的文本中,我想找到“Street”。“星期一,[LOC Te Rapa Tika Street] 的一名工人”。

谁能帮我使用正则表达式找到字符串?

谢谢

4

3 回答 3

2

在空格上拆分字符串并获取倒数第二个元素:

>>> strs = "On Monday , a worker at a [LOC Te Rapa Tika Street ]"
>>> strs.split()[-2]
'Street'
于 2013-06-04T00:02:03.033 回答
1
>>>  import re
>>>  match = re.search('\[\s?LOC.+\s(\w+)\s?\]', "[LOC Te Rapa Tika Street ]")
>>>  match.group(1)
'Street'

无论括号上的间距如何,这都应该有效。

编辑:阅读您的评论后,这会更好

   >>>  import re
   >>>  sentence = "A man strolling through the [LOC Pullman Hotel ] in [LOC Waterloo Quadrant ] on Sunday with the bag across his shoulder"
   >>>  match = re.findall('\[\s?LOC[^\]]+\s(\w+)\s?\]', sentence)
   >>>  match
   ['Hotel', 'Quadrant']
于 2013-06-04T00:18:55.127 回答
0

re.split通过\s+并获取返回列表中的倒数第二个标记(例如,使用 index -2)。

http://docs.python.org/2/library/re.html#re.split

于 2013-06-04T00:01:53.137 回答