我有这个字符串
String s1 = "FETCH /Students/Mark/School";
我有这种模式:
String pattern = "FETCH /Students/.+?/School";
在匹配之后,我需要从该字符串中获取"Mark"
。有可能吗?
求助:getSubString,使用这种模式“FETCH / Students /(.+?)/ School”;
答案 0 :(得分:1)
您可以使用简单的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/
是字符串的已知开头的假设,然后跟随一些由{{1以外的字符组成的子字符串组成的子字符串然后到/
加上你需要保留的其余字符串):
/
请参阅another demo