gpt4 book ai didi

java - 如何使用使用给定模式的最后一次出现的正则表达式拆分 Java 中的字符串列表?

转载 作者:行者123 更新时间:2023-12-04 08:36:15 25 4
gpt4 key购买 nike

我对正则表达式世界很陌生。
给定一个字符串列表作为输入,我想通过使用标点符号模式的正则表达式来拆分它们:"[!.?\n]" .
问题是,我想说明是否有多个标点符号在一起:
输入:"I want it now!!!"输出:"I want it now!!"输入:"Am I ok? Yeah, I'm fine!!!"输出:[ "Am I ok" , "Yeah, I'm fine!!" ]

最佳答案

您可以使用

[!.?\n](?![!.?\n])
在这里,一个 ! , . , ?或换行符仅在没有跟随任何这些字符时才匹配。
或者,如果必须重复字符:
([!.?\n])(?!\1)
在这里,一个 ! , . , ?或换行符仅在后面没有完全相同的字符时才匹配。
regex demo #1regex demo #2 .
Java demo :
String p = "[!.?\n](?![!.?\n])";
String p2 = "([!.?\n])(?!\\1)";
String s = "I want it now!!!";
System.out.println(Arrays.toString(s.split(p))); // => [I want it now!!]
System.out.println(Arrays.toString(s.split(p2))); // => [I want it now!!]
s = "Am I ok? Yeah, I'm fine!!!";
System.out.println(Arrays.toString(s.split(p))); // => [Am I ok, Yeah, I'm fine!!]
System.out.println(Arrays.toString(s.split(p2))); // => [Am I ok, Yeah, I'm fine!!]

关于java - 如何使用使用给定模式的最后一次出现的正则表达式拆分 Java 中的字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64784610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com