Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flex RegExp到Java RegExp_Java_Regex_Apache Flex - Fatal编程技术网

Flex RegExp到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

最近,我正在寻找帮助,以便在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 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());