gpt4 book ai didi

Java 正则表达式 : replace any B between A and Z

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

假设这个输入字符串:

A-B-C-B-Z

我正在尝试替换 AZ 之间的任何 B

以下正则表达式仅匹配最后一次出现的 B:

(.*A.*)B(.*Z.*)

...当用 $1-$2 替换 (Pattern.replaceAll()) 时,结果是

A-B-C---Z

预期的结果是

A---C---Z

相反。

感谢您的帮助!

最佳答案

在 Java 中,您可以像这样使用环视:

String str = "F-B-P-B-A-B-C-B-Z-D-B-A-B-C-B-Z-C";
String repl = str.replaceAll("(?<=A.{0,999})B(?=((?!A|Z).)*Z)", "-");
//=> F-B-P-B-A---C---Z-D-B-A---C---Z-C

根据您的评论,您可以使用此正则表达式:

String repl = str.replaceAll(
"(?<=<!\\[CDATA\\[.{0,999})&amp;(?=((?!<!\\[CDATA\\[|\\]\\]>).)*\\]\\]>)", "-");

请注意,这是假设您的输入长度最大为 999。

关于Java 正则表达式 : replace any B between A and Z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791957/

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