正则表达式以在标记内查找短语

时间:2012-11-13 17:17:24

标签: python regex

我需要re.findall的正则表达式,它返回'$'符号之间的任何内容:

Sentence = "The person, $John Doe$, works at $Lan Tech$ as a $Sales Engineer$."

打印应该产生=

['John Doe', 'Lan Tech', 'Sales Engineer']

注意:如果更容易,我可以使用“$”以外的其他内容。

1 个答案:

答案 0 :(得分:2)

re.findall()与捕获组一起使用:

re.findall(r'\$([^$]*)\$', Sentence)

示例:

>>> Sentence = "The person, $John Doe$, works at $Lan Tech$ as a $Sales Engineer$."
>>> re.findall(r'\$([^$]*)\$', Sentence)
['John Doe', 'Lan Tech', 'Sales Engineer']

说明:您需要转义正则表达式中的每个$,因为未转义的$充当正则表达式中字符串锚点的结尾。该组是括号内的所有内容,如果您有任何内容,re.findall()将仅返回组的内容,这就是$未包含在结果列表中的原因。在群组内部,[^$]*将匹配任何数量不是$的字符。