我想从Matcher
得到匹配字符串的一部分,如下所示:
Pattern pat = Pattern.compile("a.*l.*z");
Matcher match = pat.matcher("abcdlmnoz"); // I'd want to get bcd AND mno
ArrayList<String> values = match.magic(); //here is where your magic happens =)
ArrayList<String>
仅适用于此示例,我很乐意接收List或单个String项。最好的是.htaccess
个文件和RewriteRule
的文件:
RewriteRule (.*)/path?(.*) $1/$2/modified-path/
好吧,将那些(。*)放入$ arguments会像ArrayList
一样酷或分别访问String
。我一直在寻找Java Matcher API的东西,但我内心没有看到任何有用的东西。
先谢谢你们。
答案 0 :(得分:2)
您可以使用(_)
Pattern pat = Pattern.compile("a(.*)l(.*)z");
boolean b = match.matches(); // don't forget to attempt the match
然后使用match.group(n)获取捕获的那部分。这些组存储在match
对象中。
答案 1 :(得分:1)
查看匹配器的“组”方法并仔细阅读您链接到的文档以获取对组的引用,这是正则表达式中的括号所做的:)
答案 2 :(得分:1)
...
String testStr = "abcdlmnoz";
String myRE = "a(.*)l(.*)z";
Pattern myRECompiled = Pattern.compile (myRE,
DOTALL);
Matcher myMatcher = myRECompiled.matcher (testStr);
myMatcher.find ();
System.out.println (myMatcher.group (1));
System.out.println (myMatcher.group (2));
...