Python正则表达式:另一种正向查找断言
我有下面的正则表达式,用于在字符串中查找“IF”关键字(不区分大小写)。实施了一些限制:Python正则表达式:另一种正向查找断言,python,regex,Python,Regex,我有下面的正则表达式,用于在字符串中查找“IF”关键字(不区分大小写)。实施了一些限制: 它前面应该有一个空格或一个字符(来自上一个表达式) 后跟空格或(字符) 下面的表达式完成了这些约束。但是,当该表达式位于字符串开头时,它找不到关键字(例如,if(foo,1,2)) 使用类似于^ |(?的方法,您可以使用具有两个零宽度断言的替换组: (?i)(?:^|(?<=[\s)]))if(?=[\s(]) ^^^^^^^^^^^^^^^^ (?i)(?:^ |)(?问题在于|应用于
- 它前面应该有一个空格或一个字符(来自上一个表达式)
- 后跟空格或(字符)
if(foo,1,2)
)
使用类似于
^ |(?的方法,您可以使用具有两个零宽度断言的替换组:
(?i)(?:^|(?<=[\s)]))if(?=[\s(])
^^^^^^^^^^^^^^^^
(?i)(?:^ |)(?问题在于|
应用于顶层,因此它是以下两者之间的一种转换:
^
和(?您可以使用双重否定来解决问题(对于仅涉及单个字符的特定情况):
(?<![^\s)])
(?
(前面没有空格或右括号以外的字符)。此条件也包括字符串的开头。感谢您的附加注释和更正。顺便说一句,(?i)(?:^|)(?)?
(?<![^\s)])