为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

莫回无 2022-08-17 10:31:17
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:getimpick me <i>Jack</i>Expected Result: gettimepick me <i>Jack</i>一个字符与 / 一起被添加为定界符。任何人都可以帮我编写正则表达式来拆分基于定界符“/”的文本,它应该忽略xml结束标记”
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

您的正则表达式应如下所示:

(;|:|(?<!<)/)

带有负面外观,演示:https://regex101.com/r/2k1WI5/1/

您当前的正则表达式将基本上匹配任何不后跟偶数,空格和日语字符的字符。[^<]/</\n

这就是为什么你丢失了一些字母,因为它们被认为是分隔符的一部分。

按照第四个 bird 建议,您甚至可以将正则表达式简化为:([;:]|(?<!<)/)


查看完整回答
反对 回复 2022-08-17
?
慕容3067478

TA贡献1773条经验 获得超3个赞

[^<]/将匹配和e/t/

使用 lookbehind 代替,如果它不是结束标记,它将具有所需的行为,仅考虑作为分隔符/

在 regex101.com

(?<!<)/

整个正则表达式

(;|:|(?<!<)/)


查看完整回答
反对 回复 2022-08-17
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号