![](/img/trans.png)
[英]Match double quotation mark following punctuation with regex in Python to split sentence
[英]Python Regex: add restriction that it should NOT be a match if there is a quotation mark somewhere before the match AND somewhere after
我想:
我尝试将消极的后视和前瞻结合起来,但我不知何故无法弄清楚。
太感谢了!
我目前的 Python 正则表达式如下:
r'''(?<=[@])\s*[A-Z0-9.]+(?=\()'''
示例文本:
@STRING4("@STRING5( 可能还有"另一个@STRING6("__"可能这里是文本") 和@STRING7("甚至可能还有另一个@STRING8("---"和一个"最后"一个"@STRING9( &"也许还有一些"文本"
现在返回(包括前导空格):
期望回报:
我不能做你想做的一切,因为 Python 不允许非固定宽度的后视,但是这个:
reg = r"(?<=@)\s*([A-Z\d.]+)(?=(?:[^\"]*\"[^\"]*\")*$)"
应该管用。 注意它期望引号在整个字符串中正确平衡。 它也不考虑任何转义引号( \"
)。
编辑:我添加了一个捕获组,您可以使用它来删除前导空格。
一种方法是使用以下正则表达式
reg = r'(?:\"[^\"]+\")|(?:@\s*([A-Z0-9.]+)\()'
然后,您需要检查匹配是否具有组 1。如果匹配,则为错误匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.