java - 如何使用在字符串开头仍然有效的后向断言制作正则表达式

标签 java regex lookbehind

我需要在字符串的开头模拟 \b 的行为,我在其中向集合添加额外的字符,这些字符算作单词边界。现在我正在使用类似的东西:

"(?<=\\W|\\p{InCJKUnifiedIdeographs})foo"

这如我所愿地工作,除非我在被匹配字符串的开头:在这种情况下断言失败并且我没有得到匹配。如果我在字符串的开头或 foo 前面是非单词字符或表意文字,我想要的是 匹配。 但我可以没有正确的咒语来支持这一点。

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

提前致谢。

最佳答案

"(?<=^|\\W|\\p{InCJKUnifiedIdeographs})foo"

只需将字符串开始 anchor 添加到后视条件即可。

关于java - 如何使用在字符串开头仍然有效的后向断言制作正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4660708/

相关文章:

java - RSA key 交换 iOS 到 Java

java - Facebook Android sdk 和 Facebook 应用重叠

javascript - 解析器的正则表达式lookbehind替代方案(js)

Ruby 正则表达式匹配,除非转义为\

javascript - "SyntaxError: unterminated regular expression literal"使用 (?<= 后向断言

java - 使用 simplejdbccall 执行存储过程的替代方法

java - 如何在 Java 中诊断 "Unhandled Exceptions"?

regex - 为什么这个正则表达式无法匹配第二个 6 位数字?

python - 正则表达式匹配小于 500 英尺的字符串中的小数位

python - Tornado url 正则表达式 unicode 字符