python正则表达式百分号

时间:2017-09-05 11:52:40

标签: python regex

我想从文本中提取包含“~~帐户(ed或s)~~~~~~~ sale(s)”的所有部分。我正在使用python!

例如,

sentence = "Henry Schenin inc, accounted for approximately 11% of our net sale"

我的正则表达式是

rx1 = re.compile('(.|\W){1,100}account(.|\W){1,100}for\W(.|\W){1,200}sale(.|\W){1,200}', re.I)

但是,这个

rx1.search(sentence)

仅返回None

如果我使用像

这样的正则表达式
rx2 = re.compile('(.|\W){1,100}account(.|\W){1,100}for\W(.|\W){1,200}', re.I)

我知道了,

<_sre.SRE_Match object; span=(0, 67), match='Henry Schenin inc, accounted for approximately 11>

任何人都可以帮助我理解为什么这个正则表达式在百分号(%)之后无法捕捉到该部分?

((因为我想提取公司的名字,在“占据~~销售”之前列出的部分我在正则表达式的开头使用了(。| \ W){1,100}。

1 个答案:

答案 0 :(得分:0)

\s+to\s+(.*?account.*? for .*?sale(s){0,1})

这适用于您当前的示例。 你需要一些方法来决定比赛的开始位置,在这个例子中,我已经习惯了