java - 正则表达式不拆分 [ 如果字符串位于 ""之下

标签 java regex string

我希望根据 [, ] 分割字符串。但有一个限制,如果 [, ] 出现在 ""内,我们应该忽略它们。

示例:

对于字符串:

"""hello "hi" [abc: "pqr[abc]"] bye | [xyz]"""

分割后的字符串应该是:

hello "hi"
abc: "pqr[abc]"
bye |
xyz

最佳答案

您可以使用 find() 方法并描述除引号之间的部分之外的所有非方括号的内容,而不是尝试拆分:

[^\]\["]+(?:"[^"]*"[^\]\["]*)*|(?:"[^"]*"[^\]\["]*)+

(不要忘记在模式字符串中添加反斜杠。)

demo

关于java - 正则表达式不拆分 [ 如果字符串位于 ""之下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48252799/

相关文章:

java - 那个旧的 AVD 在哪里?我应该选择什么 'Screen'?

java - 如何将可选字段(Java 8 API)更改为 Java 7

java - 如何使用t24格式发送SOAP请求

java - 正则表达式 - 可选的正向回顾

javascript - 允许在两个点后验证域名

Python:如何垃圾收集字符串

java - 通配符和类型变量有什么区别?

c# - 寻找正则表达式以在大字符串中查找引用的换行符(对于 C#)

Python UDP-接收缓冲区被覆盖

python - 搜索特定字符串,仅将部分字符串复制到另一个文本文件中