python正则表达式去除匹配模式两端的引号等定位符

在实际应用中,利用正则表达式在文本数据中提取特定的字符串时,我们实际用于定位的正则表达式有一部分是不想要的。举例来说,在以下文本中

........他说:“别说我的眼泪你无所谓。”然后她说,"滚蛋".....

如果我们想把两个人说的话提取出来,可以利用双引号构建正则表达式,形如 “.*” 但这样提取出来的字符串会包含双引号本身。为了去除双引号,可以使用以下模式:

pattern = re.compile(‘(?<=“).*(?=”)’)

开头不想要的东西放在括号()内,并在前面添加?<=三个字符,末尾不想要的也放在括号()内,前面加?=两个字符即可。

当然,就本例来说,如果为了防止贪婪匹配,可以把中间的任意字符改为非双引号的字符,即[^"]*

你可能感兴趣的:(python正则表达式去除匹配模式两端的引号等定位符)