首页 > 解决方案 > 如何拆分单词的所有实例,不包括该单词是引号中的子字符串?

问题描述

我需要一个在 Javas Pattern.split() 方法中使用的正则表达式:我需要适当地解析这个字符串中单词的出现:

- 开始 -

我想在这个香蕉上拆分,但不是“香蕉”,我确实想在这个香蕉上拆分,但不是“子字符串中的任何香蕉和\或每组文字引号之间的任何香蕉”

- 结尾 -

我的第一次尝试是尝试这个:

如果单词被空格和边界包围,它会分裂,但它也会抓住任何两边都有一个字符的单词,并且不会在引号之间或一组引号之间的更大单词组之间陷入困境。

\bbanana\b

我的另一个想法是这样的:

['].\*[^(?:banana)].\*[']|banana

这将在引号或任何香蕉之间抓取带有香蕉的任何字符串,并且仅在匹配第二组而不是非捕获组的组上拆分,但非捕获组仍将对它们执行正则表达式操作。因此,似乎 .split 与 this 也无法实现这一点。

上面的字符串中有 5 个香蕉出现,我只想拆分上面字符串中的第一个和第三个香蕉。这可能吗?我需要消除任何由 '' 封装的香蕉的分裂,但在这些文字引号之间可以有任意数量的字符

所以预期的输出将是:

我想就此分开。

但不是“香蕉”,我确实想就此分开。

但不是'anybananain 一个子字符串和\或每组文字引号之间的任何香蕉'。

标签: javaregex

解决方案


推荐阅读