Regex 只有在负向前看和向后看都失败时才匹配
我试图创建一个正则表达式,检查一个单词是否存在于一个句子中,当且仅当它不包含在单引号中时 我尝试过不同的正则表达式,例如:Regex 只有在负向前看和向后看都失败时才匹配,regex,Regex,我试图创建一个正则表达式,检查一个单词是否存在于一个句子中,当且仅当它不包含在单引号中时 我尝试过不同的正则表达式,例如: (?<!' )(?i:THEN)|(?i:THEN)(?! ') 一些意见将不胜感激 谢谢大家! 描述 这个正则表达式将匹配单词然后,该单词没有引号 \bTHEN\b(?<!'\s*THEN(?=\s*')) 例子 现场演示 然后匹配 “然后匹配 然后“匹配” “那么” “然后匹配 然后“匹配” “那么” ”然后我跳了起来。匹配 然后他说“哇”。匹配 斯
(?<!' )(?i:THEN)|(?i:THEN)(?! ')
一些意见将不胜感激
谢谢大家! 描述
这个正则表达式将匹配单词然后
,该单词没有引号
\bTHEN\b(?<!'\s*THEN(?=\s*'))
例子
现场演示
然后匹配
“然后匹配
然后“匹配”
“那么”
“然后匹配
然后“匹配”
“那么”
”然后我跳了起来。匹配
然后他说“哇”。匹配
斯腾斯
解释
节点说明
----------------------------------------------------------------------
\b单词char(\w)和
不是单词char的东西
----------------------------------------------------------------------
然后‘然后’
----------------------------------------------------------------------
\b单词char(\w)和
不是单词char的东西
----------------------------------------------------------------------
(?是当单词是引号中唯一的一个时,还是当它也是被引用句子的一部分时?@ClasG仅当单词是引号中唯一的一个时。您的要求不太清楚。请尝试(?i)然后(?这将不匹配'then'
,但将匹配'then'
和'then'
。我建议匹配您不需要的内容,并匹配和捕获您需要保留的内容。然后使用特定于语言的方法获得最终结果。请澄清一下,您使用的是哪个正则表达式引擎?可能的解决方案可能取决于这是事实。
' then I jumped.
He said then 'Wow'.
\bTHEN\b(?<!'\s*THEN(?=\s*'))
NODE EXPLANATION
----------------------------------------------------------------------
\b the boundary between a word char (\w) and
something that is not a word char
----------------------------------------------------------------------
THEN 'THEN'
----------------------------------------------------------------------
\b the boundary between a word char (\w) and
something that is not a word char
----------------------------------------------------------------------
(?<! look behind to see if there is not:
----------------------------------------------------------------------
' '\''
----------------------------------------------------------------------
\s whitespace (\n, \r, \t, \f, and " ")
----------------------------------------------------------------------
THEN 'THEN'
----------------------------------------------------------------------
(?= look ahead to see if there is:
----------------------------------------------------------------------
\s whitespace (\n, \r, \t, \f, and " ")
----------------------------------------------------------------------
' '\''
----------------------------------------------------------------------
) end of look-ahead
----------------------------------------------------------------------
) end of look-behind
----------------------------------------------------------------------
(?<! look behind to see if there is not:
----------------------------------------------------------------------
'THEN '\'THEN'
----------------------------------------------------------------------
(?= look ahead to see if there is:
----------------------------------------------------------------------
' '\''
----------------------------------------------------------------------
) end of look-ahead
----------------------------------------------------------------------
) end of look-behind
----------------------------------------------------------------------