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
正则表达式中的$1在Java中返回空_Java_Regex - Fatal编程技术网

正则表达式中的$1在Java中返回空

正则表达式中的$1在Java中返回空,java,regex,Java,Regex,我有以下Java代码 Pattern p = Pattern.compile(KeyWordsRegExp); Matcher m = p.matcher(str); StringBuffer sb = new StringBuffer(); while (m.find()) { m.appendReplacement(sb, "<span class=\"colorForKeyword\">$1</span>"); } m.appendTail(sb); 归来

我有以下Java代码

Pattern p = Pattern.compile(KeyWordsRegExp);
Matcher m = p.matcher(str);
StringBuffer sb = new StringBuffer();
while (m.find()) {
    m.appendReplacement(sb, "<span class=\"colorForKeyword\">$1</span>");
}
m.appendTail(sb);
归来

<span class="colorForKeyword">public</span> <span class="colorForKeyword">void</span> test{}
str是我模式匹配的对象,因此在示例中我提供了“publicvoidtest{}

pattern p=pattern.compile(“+KeyWordsRegExp+”);
Pattern p = Pattern.compile("(" + KeyWordsRegExp + ")");
String span = "<span class=\"colorForKeyword\">$1</span>";
str = p.matcher(str).replaceAll(span);
字符串span=“$1”; str=p.matcher(str).replaceAll(span);

Pattern p=Pattern.compile(关键字sregexp);
字符串span=“$0”;
str=p.matcher(str).replaceAll(span);
(其中$0是整个匹配)


或者没有模式。

什么是
关键字regexp
?什么是
str
?我更新了问题以反映您的评论。只有“摘要”会给出$1。使用
$0
进行完全匹配,而不是
$1
<span class="colorForKeyword"></span> <span class="colorForKeyword"></span> test{}
private String KeyWordsRegExp = "(\\babstract\\b)|(\\bcontinue\\b)|(\\bfor\\b)|(\\bnew\\b)|(\\bswitch\\b)|(\\bassert\\b)|(\\bdefault\\b)|(\\bgoto\\b)|(\\bpackage\\b)|(\\bsynchronized\\b)|(\\bboolean\\b)|(\\bdo\\b)|(\\bif\\b)|(\\bprivate\\b)|(\\bthis\\b)|(\\bbreak\\b)|(\\bdouble\\b)|(\\bimplements\\b)|(\\bprotected\\b)|(\\bthrow\\b) |(\\bbyte\\b)|(\\belse\\b)|(\\bimport\\b)|(\\bpublic\\b)|(\\bthrows\\b)|(\\bcase\\b)|(\\benum\\b)|(\\binstanceof\\b)|(\\breturn\\b)|(\\btransient\\b)|(\\bcatch\\b)|(\\bextends\\b)|(\\bint\\b)|(\\bshort\\b)|(\\btry\\b)|(\\bchar\\b)|(\\bfinal\\b)|(\\binterface\\b)|(\\bstatic\\b)|(\\bvoid\\b) |(\\bclass\\b)|(\\bfinally\\b)|(\\blong\\b)|(\\bstrictfp\\b)|(\\bvolatile\\b)|(\\bconst\\b)|(\\bfloat\\b)|(\\bnative\\b)|(\\bsuper\\b)|(\\bwhile\\b)";
Pattern p = Pattern.compile("(" + KeyWordsRegExp + ")");
String span = "<span class=\"colorForKeyword\">$1</span>";
str = p.matcher(str).replaceAll(span);
Pattern p = Pattern.compile(KeyWordsRegExp);
String span = "<span class=\"colorForKeyword\">$0</span>";
str = p.matcher(str).replaceAll(span);