Flex RegExp到Java RegExp
最近,我正在寻找帮助,以便在flex中使用RegExp来提取URL的一些模式,很少有人愿意帮助我完成这项工作。我需要在java层再做一次,我尝试在java中应用相同的regExp模式,但它给了我一个错误Flex RegExp到Java RegExp,java,regex,apache-flex,Java,Regex,Apache Flex,最近,我正在寻找帮助,以便在flex中使用RegExp来提取URL的一些模式,很少有人愿意帮助我完成这项工作。我需要在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 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');
它给出了这个错误
线程“main”java.util.regex.PatternSyntaxException中的异常:索引1附近的非法重复
/({{\^)([A-Za-z0-9}{{,])*(})/
{
是Java正则表达式中的一个元字符,用于有界重复,例如,a{1,2}
至少匹配1个,最多匹配2个'a'。因为您不使用它进行重复,所以应该转义每个{
with\\
您是如何在Java中创建的,错误是什么?Sly_cardinal,thx,问题已更新。注意:您不应该在urlPattern
中包含斜杠。它们不是必需的,并且被视为简单字符。Howard,thx,但即使我删除了m、 它一开始显示错误(“character.Hi Antti,thx,但是你能更详细地说明一下吗?我应该如何处理当前代码?@bluelabel转义意味着将反斜杠放在字符之前。试试”(\\{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\,
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());