1

我需要一个正则表达式来re.findall返回“$”符号之间的任何内容:

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

印刷应产生 =

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

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

4

1 回答 1

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()只会返回组的内容(如果有),这就是$结果列表中不包含 s 的原因。在组内,[^$]*将匹配任意数量的非$.

于 2012-11-13T17:20:10.070 回答