如何使用仍然在字符串开头工作的lookbehind断言来制作正则表达式

Tre*_*Rex 4 java regex lookbehind

我需要模拟\b字符串开头的行为,我在其中添加额外的字符作为字边界.现在我正在使用类似的东西:

"(?<=\\W|\\p{InCJKUnifiedIdeographs})foo"
Run Code Online (Sandbox Code Playgroud)

这是我想要的,除非我在匹配的字符串的开头:在这种情况下断言失败,我没有得到命中.我想要的是相当于匹配,如果我在字符串的开头或者foo前面是非单词字符或表意文字.但我无法得到正确的咒语来支持这一点.

有什么想法吗?或者这不可能吗?

提前致谢.

Rob*_*rtB 14

"(?<=^|\\W|\\p{InCJKUnifiedIdeographs})foo"
Run Code Online (Sandbox Code Playgroud)

只需将字符串开始锚点添加到lookbehind条件即可.

  • @СашкоЛихенко 这是 Python 正则表达式引擎的限制。它只允许“固定宽度”的后视,并且`^`(零/空?/NaN?)的长度明显不同于``(一)。 (2认同)