我如何向后查找一个词?
How do I lookbehind for a single word?
在这个字符串 a b-cd
中,我想应用这个正则表达式 a b-c(?<=a)d
。
唯一的办法就是这样写a b-c(?<=a b-c)d
,但我不想把整个正则表达式写在后面去应用它,只想看看这个字母是否存在。
它的复杂版本:(?:[a-z] )?b c d e f(?:(?<=a ) alphas)
https://regex101.com/r/gyT6ix/1
这可能吗?
在 pcre 中,不支持您在评论中提到的模式 a b-c(?<=a.*)d
中的无限后视 .*
。
匹配 [a-z] b c d e f
或 a b c d e d alphas
的一个选项可能是使用看起来像 (?(?=regex)then|else)
的 if-then-else conditional
(?(?=a)\ba b c d e f alphas\b|[a-z] b c d e f)
关于正则表达式
(?
If 子句
(?=a)
断言右边是 a
的正面前瞻
\ba b c d e f alphas\b
匹配 a b c d e f alphas
并使用单词边界来防止 a 和字母成为更大单词的一部分
|
或
[a-z] b c d e f
匹配字符 a-z 后跟 b c d e f
)
看到一个Regex demo
在这个字符串 a b-cd
中,我想应用这个正则表达式 a b-c(?<=a)d
。
唯一的办法就是这样写a b-c(?<=a b-c)d
,但我不想把整个正则表达式写在后面去应用它,只想看看这个字母是否存在。
它的复杂版本:(?:[a-z] )?b c d e f(?:(?<=a ) alphas)
https://regex101.com/r/gyT6ix/1
这可能吗?
在 pcre 中,不支持您在评论中提到的模式 a b-c(?<=a.*)d
中的无限后视 .*
。
匹配 [a-z] b c d e f
或 a b c d e d alphas
的一个选项可能是使用看起来像 (?(?=regex)then|else)
(?(?=a)\ba b c d e f alphas\b|[a-z] b c d e f)
关于正则表达式
(?
If 子句(?=a)
断言右边是a
的正面前瞻
\ba b c d e f alphas\b
匹配a b c d e f alphas
并使用单词边界来防止 a 和字母成为更大单词的一部分
|
或[a-z] b c d e f
匹配字符 a-z 后跟 b c d e f )
看到一个Regex demo