正则表达式或表达式,Python

时间:2014-02-26 14:24:12

标签: python regex

我有很多句子,我需要有一个正则表达式,用于解释“第五布局”和“balaji布局”。简单地把它作为一个单词,然后是数字单词和布局的布局和组合。“text2是一个字符串”  下面的代码根据需要为我提供了正则表达式“balaji布局”。

import re
p = re.compile('\w+\slayout')
q = re.search(p,text2)
q.group()

为了说明数字,我添加了一个OR,但这只是给了我“i layout”(对于balaji)

import re
p = re.compile('(\w+|\d\w+)\slayout')
q = re.search(p,text2)
q.group()  

如何通过适当的提取来解释两者?

3 个答案:

答案 0 :(得分:2)

您当前的正则表达式(\w|\d\w+)表示one letter or (one digit and more than one letter)

您需要以下内容:

\d?\w+\slayout

含义0 or 1 digit, then 1 or more letters

答案 1 :(得分:1)

尝试使用:

re.compile('(\d[a-zA-Z_]+|[a-zA-Z_]+)\slayout')

答案 2 :(得分:1)

您可以使用最简洁的模式来完全您想要的是:

re.compile(r'[a-z0-9]+\slayout', re.I)  # re.I means to ignore the case.