Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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/regex/17.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
重写要在Java中使用的正则表达式_Java_Regex - Fatal编程技术网

重写要在Java中使用的正则表达式

重写要在Java中使用的正则表达式,java,regex,Java,Regex,我已经编写了(?检查完整字符串匹配的方法,因此不使用检查子序列匹配的方法。最后,您可以使用该方法获得匹配的子序列字符串 public static void main(String[] args) { Pattern pattern = Pattern.compile("(?<=pp_).*(?=')"); String input = "['newPage', 'pp_vii', -1])"; Matcher m = pattern.matcher(input); boolean a =

我已经编写了
(?检查完整字符串匹配的方法,因此不使用检查子序列匹配的方法。最后,您可以使用该方法获得匹配的子序列字符串

public static void main(String[] args) {
Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");
String input = "['newPage', 'pp_vii', -1])";
Matcher m = pattern.matcher(input);
boolean a = m.find(); 

if(a){
    String out = m.group();
    System.out.println("Match : " + out);
}
publicstaticvoidmain(字符串[]args){

Pattern Pattern=Pattern.compile((?您的正则表达式很好。
Matcher.matches()
方法仅在完整字符串与模式()匹配时返回true。您应该改用
Matcher.find()
来查找与模式()匹配的下一个子序列


这很好。但是,如何获取匹配的内容?
String s=matcher.group(0)
tring pageLabel=matcher.group()
都会引发异常。我调试了m对象及其int[]组总是-1。使用
find
matches
交换行。匹配器有一个索引,在运行
matches
后位于字符串末尾,因此这会导致异常。在调用
find
后,必须调用
group
方法。我更新了答案。
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");
String input = "['newPage', 'pp_vii', -1])";
Matcher m = pattern.matcher(input);
boolean a = m.find(); 

if(a){
    String out = m.group();
    System.out.println("Match : " + out);
}
Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");
String input = "['newPage', 'pp_vii', -1])";
Matcher m = pattern.matcher(input);
boolean stringMatches = m.matches(); // false
boolean isThereMatch = m.find(); // true
System.out.println(isThereMatch + " " + stringMatches);
System.out.println(m.group());
true false
vii