gpt4 book ai didi

java - 正则表达式 - 组值替换

转载 作者:行者123 更新时间:2023-12-04 16:07:41 24 4
gpt4 key购买 nike

我不确定这是否可行,但我需要一种方法,在匹配完成后用运行时动态声明的字符串替换我的正则表达式中指定的编号组的值。

给定一个简单的案例,比如...

(/)?([A-Za-z0-9])?(/)?$

我希望能够插入第 2 组的替代品。

我目前正在使用 Java 的 Matcher 类。

最佳答案

I am not sure if this is possible to do...

是的,这是可能的。请参见下面的示例。

I would want to be able to plugin a replacement for group 2.

此演示“插入”组 2 的 .toUpperCase 版本作为替换。

import java.util.regex.*;

class Main {
public static void main(String... args) {
String input = "hello my name is /aioobe/ and I like /patterns/.";
Pattern p = Pattern.compile("(/)([A-Za-z0-9]+)(/)");
Matcher m = p.matcher(input);
StringBuffer sb = new StringBuffer();
while (m.find()) {
String rep = m.group(1) + m.group(2).toUpperCase() + m.group(3);
m.appendReplacement(sb, rep);
}
m.appendTail(sb);
System.out.println(sb);
}
}

打印:

hello my name is /AIOOBE/ and I like /PATTERNS/.

关于java - 正则表达式 - 组值替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3980738/

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