gpt4 book ai didi

java - Flex 正则表达式 到 Java 正则表达式

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

最近我正在寻求帮助,以使用 Flex 中的 RegExp 提取 URL 的某些模式,很少有人好心地帮助我完成它。 See this我需要在 java 层再次执行此操作,我尝试在 java 中应用相同的 regExp 模式,但它给了我一个错误。

var s:String = "www.something.com@param1={{^User Name^}},{{^,e,^}},param2={{^user id^}}";
var userPattern:RegExp = /(?<=param1=)({{\^)([A-Za-z0-9\^}}{{, ])*(})/;
var userIdPattern:RegExp = /(?<=param2=)({{\^)([A-Za-z0-9\^}}{{, ])*(})/;
s = s.replace(userPattern,'username');
s = s.replace(userIdPattern,'user_id');

这给出了 www.something.com@param1=username,param2=user_id。

有人可以帮我在java层中做到这一点吗,相关的正则表达式就足够了。

这是我在java中尝试过的,

String url = "http://www.google.com/@param1={{^Case Name^}},param2={{^Case Id^}}";
String urlPattern = "/({{\\^)([A-Za-z0-9_\\^}}{{, ])*(})/";
Pattern paramPattern = Pattern.compile(urlPattern);
Matcher matcher = paramPattern.matcher(url);
System.out.println("Matches - "+matcher.matches());
System.out.println("Find - "+matcher.find());

它给出了这个错误

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 1 /({{\^)([A-Za-z0-9_\^}}{{, ])*(})/

最佳答案

{ 是 Java 正则表达式中的元字符,用于有界重复,例如a{1,2} 匹配至少 1 个、最多 2 个“a”。由于您不使用它进行重复,因此您应该使用 \\ 转义每个 {

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

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