gpt4 book ai didi

java - 删除找到单词java后的所有文本

转载 作者:行者123 更新时间:2023-12-02 06:13:01 25 4
gpt4 key购买 nike

在某些情况下,我需要剪切字符串的尾部 - 我已经使用 indexOf 和 substring 完成了此操作,但它减慢了我的代码((我考虑过正则表达式,但这个尾部只有相似的开头 - 这不是“稳”字 例如我有这样的字符串

 aaaaa bbb cc (bb) (r-1hh) 

我需要一个结果

  aaaaa bbb cc (bb)

但也可能有这样的字符串

aaaaa bbb cc (bb) (r3-34fff)

 aaaaa bbb cc (bb) [tagBB- na]

所以,问题是 - 我可以使用正则表达式来查找 tail 的索引吗?

另一个问题 - IndexOf 或 Substring 在 java 中使用正则表达式吗?

最佳答案

如何查找正则表达式匹配位置:

Pattern p = Pattern.compile("i.*t");
String s = "my input string";
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println("match begins at " + m.start()); // 3
System.out.println("match ends at " + m.end()); // 11
} else {
System.out.println("no match found");
}

但是您可以通过这种方式删除尾随文本:

String res = s.replaceFirst("^(.* input).*", "$1");
System.out.println("'" + res + "'");

或者使用完全匹配而不用这种方式转义每个特殊字符:

String res = s.replaceFirst("^(.* " + Pattern.quote("^something$wierd^") + ").*", "$1");
System.out.println("'" + res + "'");

关于java - 删除找到单词java后的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723245/

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