【发布时间】:2020-03-03 01:00:46
【问题描述】:
我正在尝试使用正则表达式捕获组和环视来匹配序列中特定单词的所有实例,但前提是它没有被 & 和 ; 包围符号(即我不想从&word; 捕获word,但我从&word 或word; 捕获)。
我写了一个我认为可以满足我的需求的正则表达式,但它没有——似乎我在 if 子句中放置的负面环顾四周只使第一组不匹配,而不是整个匹配。
(&[^;&]*)?(amp)(?(1)(?!;))
在此字符串上使用时:>amp; &amp; amp &amp; &amp< 我预计只有第一、第三和第五安培会被匹配,因为负环视,但出乎意料的是,它们都匹配,只有 & 被排除在 ; 之后。
https://regex101.com/r/ilAAVb/1
我是否在这里犯了一些明显的错误,或者 if 子句中的环顾四周仅适用于该子句正在检查的组?
编辑:更正了我需要从句子中提取的内容。
【问题讨论】:
标签: regex regex-lookarounds regex-group