Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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,我刚开始学习正则表达式。我正在尝试获取“mytag”标记中的属性值,并使用了以下代码,但没有发现匹配异常 import java.util.regex.Matcher; import java.util.regex.Pattern; public class dummy { public static void testRegEx() { // String pattern_termName = "(?i)\\[.*\\]()\\[.*\\]";

我刚开始学习正则表达式。我正在尝试获取“mytag”标记中的属性值,并使用了以下代码,但没有发现匹配异常

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class dummy {

    public static void testRegEx()
    {
    //  String pattern_termName = "(?i)\\[.*\\]()\\[.*\\]";

        Pattern patternTag;
        Matcher matcherTag;

        String mypattern= "\\[mytag attr1="(.*?)" attr2="(.*?)" attr3="(.*?)"](.+?)\\[/mytag]";

        String term="[mytag attr1=\"20258044753052856\" attr2=\"A security \" attr3=\"cvvc\" ]TagTitle[/mytag]";


        patternTag = Pattern.compile(mypattern);

        matcherTag = patternTag.matcher(term);

        System.out.println(matcherTag.group(1)+"*********"+matcherTag.group(2)+"$$$$$$$$$$$$");
    }

    public static void main(String args[])
    {
        testRegEx();    
    }

}

我使用了
\“
来代替
,但它仍然显示了相同的异常。

您忘记了根据find函数检查matcher对象,还需要使用
\“
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class dummy {

    public static void testRegEx()
    {
    //  String pattern_termName = "(?i)\\[.*\\]()\\[.*\\]";

        Pattern patternTag;
        Matcher matcherTag;

        String mypattern= "\\[mytag attr1="(.*?)" attr2="(.*?)" attr3="(.*?)"](.+?)\\[/mytag]";

        String term="[mytag attr1=\"20258044753052856\" attr2=\"A security \" attr3=\"cvvc\" ]TagTitle[/mytag]";


        patternTag = Pattern.compile(mypattern);

        matcherTag = patternTag.matcher(term);

        System.out.println(matcherTag.group(1)+"*********"+matcherTag.group(2)+"$$$$$$$$$$$$");
    }

    public static void main(String args[])
    {
        testRegEx();    
    }

}
而不是
,”,。该方法扫描输入序列,寻找与模式匹配的下一个子序列

Pattern patternTag;
Matcher matcherTag;
String mypattern= "\\[mytag attr1=\"(.*?)\" attr2=\"(.*?)\" attr3=\"(.*?)\"\\s*](.+?)\\[/mytag]";
String term="[mytag attr1=\"20258044753052856\" attr2=\"A security \" attr3=\"cvvc\" ]TagTitle[/mytag]";
patternTag = Pattern.compile(mypattern);
matcherTag = patternTag.matcher(term);
while(matcherTag.find()){
       System.out.println(matcherTag.group(1)+"*********"+matcherTag.group(2)+"$$$$$$$$$$$$");
}
输出:

20258044753052856*********A security $$$$$$$$$$$$

\\s+
\\s*
缺失

代码:

输出:

20258044753052856   A security  cvvc    TagTitle

mytag attr1=
\`“20258044753052856\”在何处匹配此
\`为什么在模式中使用
而不是
?@AvinashRaj I have use\”,但它显示了相同的异常。@vks我无法理解您!我已更改为字符串mypattern=“\[mytag attr1=\\\”(.*?\\“attr2=\\”(.*?\\“attr3=\\”(.*?\\”)\[/mytag]”(.+?);但它仍然不起作用!!