Java/Android : Regexp or inversed

标签 java android regex

我想按照以下规则将字符串拆分为数组: 适合正则表达式的子字符串和不适合的子字符串。我的正则表达式是 "\\[((id)|(club))[0-9]+\\|[^]]+\\]"

例如,如果我有一个字符串“嗨,[id123|Alex]!看看[club3123|这个很棒的俱乐部]!太棒了!”

我想要一个数组["嗨,","[id123|Alex]","!看看","[club3123|这个很棒的俱乐部]","!太棒了!"]

我认为,我的正则表达式应该类似于 myregexp 或不是 myregexp。我尝试用谷歌搜索这个,但没有用。请帮助我。

最佳答案

您可以在 Matcher#find 中使用此正则表达式:

(\\[(?:id|club)[0-9]+[^]]+\\]|.+?(?=\\[(?:id|club)[0-9]+[^]]+\\]|$))

Working Demo

说明:它与给定正则表达式的文本匹配 \\[(?:id|club)[0-9]+[^]]+\\] 或任何长度为 1 或长度的任意文本,直到使用 (?=\\[(?:id|club)[0-9]+[^]] 使用 lookahead 提前找到您的reges +\\]|$)

关于Java/Android : Regexp or inversed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246164/

相关文章:

java - 如何修改此真值表,以便它使用并显示 1's and 0' s 而不是 true 和 false

java - Gson Android 和异步任务

android - 如何从终端在 MacOS 上构建 android 项目?

ruby - 用户输入 + Ruby + 正则表达式?

regex - VIM - 如何粘贴没有特殊字符的搜索寄存器?

java - 如何将 outputText 设置为在 ADF 中换行

java - 将 TXT 文件拖放到 TextArea 中

java - 在 JRuby 中将 BufferedImage 编码为 Base64 (Java)

android - 如何在 EditText 聚焦时禁用键盘显示?

regex - 匹配字符串的正则表达式,不以特定字符串结尾