具有正则表达式的字符串操作或语句

时间:2014-05-28 22:42:15

标签: python regex string python-3.x

我试图从短语中解析出某些字符串。这句话是: ' 1楼2楼3楼4楼' 结束语应该是: '一楼'二楼'三楼''四楼'

我无法获得第一'第二'第三'第三'第四'正则表达式的一部分。我知道我可以通过使用4个不同的或陈述来做一个不太直观的版本,但我想知道我是否可以用一个。

' \ DST \ S \ W + | \ DND \ S \ W + | \ DRD \ S \ W + | \ DTH \ S \ W +' - 这是我试图缩短的漫长道路

是否有将st,nd,rd和th组合成一个语句而不重复格式化? 感谢。

3 个答案:

答案 0 :(得分:1)

是的,你可以将st,nd,rd和th组合成一个语句,但看起来你正试图从这个正则表达式中获取一个列表。为什么不试试这样的re.split

>>> import re
>>> t = '1st Floor 2nd Floor 3rd Floor 4th Floor'
>>> re.split(r'(?<=Floor)\s+', t)
['1st Floor', '2nd Floor', '3rd Floor', '4th Floor']

答案 1 :(得分:1)

另一种可能性:

import re
s = '1st Floor 2nd Floor 3rd Floor 4th Floor'
s2 = re.findall(r'\w+ Floor', s)

答案 2 :(得分:1)

<强> Live demo

这是正则表达式:

(\d+(st|nd|rd|th)) \w+\b