java - 正则表达式根据确切的字符拆分,除非在它之前用反斜杠转义

标签 java regex string split delimiter

需要使用定界符分割字符串,但前提是定界符前没有反斜杠。

例如:如果有 abc\:abc - 不要拆分它,因为 : 前面有反斜杠。

如果字符串是 abc : abc - 需要拆分为 abc, abc

分隔符可以是:,|,&

最佳答案

使用负面回顾 (?<!...) .匹配文字反斜杠 \ ,你必须逃脱两次。一次转义是因为它是字符串文字,一次是因为它是正则表达式转义字符。

String[] parts = string.split("(?<!\\\\)[:,|&]");

关于java - 正则表达式根据确切的字符拆分,除非在它之前用反斜杠转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40856125/

相关文章:

java - 正则表达式 SPARQL 查询

java - 使用扫描器或字符串方法在字符串中进行多次搜索 (java)

c - C strcmp 中的字符串比较

java - Bean 在不使用 @Autowired 的情况下被注入(inject)

java - 如何在拥有 html、css 和 js 文件的情况下构建 Angular6 项目

java - 重绘位于另一个 JPanel 中的 JPanel

iphone - 如何进行向后搜索以找到第二个空格/空白并将其替换为另一个字符串?

java - 如何使用 HttpClient 处理 HTTP/2 GOAWAY?

c++ - 使用命名捕获找出给定正则表达式中命名组的所有名称

python - 关于python中split的解释