gpt4 book ai didi

java - 将此模式转换为 Pattern.matches(..) 的正则表达式

转载 作者:行者123 更新时间:2023-12-02 03:26:56 26 4
gpt4 key购买 nike

我的一些字符串可能包含一个类似于 @[alph4Num3ric-alph4Num3ric] 的子字符串,我将在其中找到字母数字 id 并将其替换为映射到关联键的相应文本值一张 map 。

我的第一个倾向是检查我的string.contains("@["),但我想更具体

所以现在我正在查看 Pattern.matches( 但不确定正则表达式和总表达式

如何在 Pattern.matches 方法中对 @[ ...... - .... ] 进行正则表达式,它还必须考虑破折号。所以我不确定这个语法中需要转义什么或通配符等等。

我也不能 100% 确定这是否是最好的消息。我想首先从 Pattern.matches 获取一个 boolean 值,然后获取实际值并用这些值修改字符串,这似乎足够好,但我想最小化计算。

最佳答案

请尝试一下,

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub

String expression = "String contains @[alph4Num3ric-alph4Num3ric] as substring";

Pattern pattern = Pattern
.compile("\\@\\[([a-zA-Z0-9]+)-([a-zA-Z0-9]+)\\]");
Matcher matcher = pattern.matcher(expression);
while (matcher.find()) {
System.out.println("matched: "+matcher.group());
System.out.println("group1: "+matcher.group(1));
System.out.println("group2: "+matcher.group(2));
System.out
.println("after replace "+expression.replace(matcher.group(1), "customkey"));
}
}

}

输出:

matched: @[alph4Num3ric-alph4Num3ric]
group1: alph4Num3ric
group2: alph4Num3ric
after replace: String contains @[customkey-customkey] as substring

关于java - 将此模式转换为 Pattern.matches(..) 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38727706/

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