gpt4 book ai didi

java - 如何获取模式匹配后的子字符串?并从初始字符串中删除找到的子字符串

转载 作者:行者123 更新时间:2023-11-30 07:52:59 24 4
gpt4 key购买 nike

我有这个字符串

String s1 = "FETCH /Students/Mark/School";

我有这个模式:

String pattern = "FETCH /Students/.+?/School";

匹配后,我需要从该字符串中取出“Mark”。可能吗?

已解决:getSubString,使用此模式“FETCH/Students/(.+?)/School”;

最佳答案

您可以使用简单的replaceAll获得你想要的:

String s1 = "FETCH /Students/Mark/School";
s1 = s1.replaceAll("FETCH /Students/[^/]+/School", "FETCH /Students/School");
System.out.println(s1);

参见IDEONE demo

[^/]+子模式匹配除 / 之外的 1 个或多个字符。由于您想要保留的部分是已知的,因此您不需要使用捕获组,只需在替换字符串中使用文字即可。

这里是获取您所寻求的结果的子字符串方式(为了完整性,基于 FETCH /Students/ 是字符串的已知开头的假设,然后跟随由除 / 以外的字符组成的一些子字符串,直到然后 / 加上您需要保留的其余字符串):

String s1 = "FETCH /Students/Mark/School";
String endPart = s1.substring(s1.indexOf("/", 17));
System.out.println(s1.substring(0, 15) + endPart);

参见another demo

关于java - 如何获取模式匹配后的子字符串?并从初始字符串中删除找到的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33086681/

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