Java 中基于正则表达式的字符串拆分

String delimiterRegexp = "(;|:|[^<]/)";

String value = "get/time/pick me <i>Jack</i>";

String[] splitedTexts = value.split(delimiterRegexp);

for (String text : splitedTexts) {

System.out.println(text);

}


Output:

ge

tim

pick me <i>Jack</i>


Expected Result: 

get

time

pick me <i>Jack</i>

一个字符与 / 一起被添加为定界符。任何人都可以帮我编写正则表达式来拆分基于定界符“/”的文本,它应该忽略xml结束标记”


莫回无
浏览 148回答 2
2回答

HUH函数

您的正则表达式应如下所示:(;|:|(?<!<)/)带有负面外观,演示:https://regex101.com/r/2k1WI5/1/您当前的正则表达式将基本上匹配任何不后跟偶数,空格和日语字符的字符。[^<]/</\n这就是为什么你丢失了一些字母,因为它们被认为是分隔符的一部分。按照第四个 bird&nbsp;建议,您甚至可以将正则表达式简化为:([;:]|(?<!<)/)

慕容3067478

[^<]/将匹配和e/t/使用 lookbehind 代替,如果它不是结束标记,它将具有所需的行为,仅考虑作为分隔符/在&nbsp;regex101.com(?<!<)/整个正则表达式(;|:|(?<!<)/)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java