Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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
reg exp java的使用规则_Java_Regex - Fatal编程技术网

reg exp java的使用规则

reg exp java的使用规则,java,regex,Java,Regex,我有一个模式: host=([a-z0-9./:]*) 这是为我找到的主机地址。我有内容 host=http/:sdf3452.domain.com/ 我的代码是: Matcher m; Pattern hostP = Pattern.compile("host=([a-z0-9./:]*)"); m=hostP.matcher(content);//string 1 String match = m.group();//string 2 Log.i(

我有一个模式:

host=([a-z0-9./:]*)
这是为我找到的主机地址。我有
内容

host=http/:sdf3452.domain.com/

我的代码是:

    Matcher m;
    Pattern hostP = Pattern.compile("host=([a-z0-9./:]*)");
    m=hostP.matcher(content);//string 1
    String match = m.group();//string 2 
    Log.i("host", ""+hostP.matcher(content).find());
如果删除字符串1和2,我会在
logcat
中看到
true
。如果保持原样,我就什么也没发现。 我试过各种
模式
。通过调试查找
m
变量,未找到匹配项。请教我使用reg exp

group()
匹配之前,需要调用
find()

试着这样做:

Pattern hostP = Pattern.compile("host=([a-z0-9./:]*)");
Matcher m = hostP.matcher(content);

if(m.find()) {
  String match = m.group();
  // ... 
}
编辑 还有一个小演示,展示了每个比赛组包含的内容:

Pattern p = Pattern.compile("host=([a-z0-9./:]*)");
Matcher m = p.matcher("host=http://sdf3452.domain.com/");
if (m.find()) {
  for(int i = 0; i <= m.groupCount(); i++) {
    System.out.printf("m.group(%d) = '%s'\n", i, m.group(i));
  }
}
Pattern p=Pattern.compile(“主机=([a-z0-9./:]*)”;
Matcher m=p.Matcher(“主机=http://sdf3452.domain.com/");
if(m.find()){
对于(int i=0;i在
group()
匹配之前,需要调用
find()

试着这样做:

Pattern hostP = Pattern.compile("host=([a-z0-9./:]*)");
Matcher m = hostP.matcher(content);

if(m.find()) {
  String match = m.group();
  // ... 
}
编辑 还有一个小演示,展示了每个比赛组包含的内容:

Pattern p = Pattern.compile("host=([a-z0-9./:]*)");
Matcher m = p.matcher("host=http://sdf3452.domain.com/");
if (m.find()) {
  for(int i = 0; i <= m.groupCount(); i++) {
    System.out.printf("m.group(%d) = '%s'\n", i, m.group(i));
  }
}
Pattern p=Pattern.compile(“主机=([a-z0-9./:]*)”;
Matcher m=p.Matcher(“主机=http://sdf3452.domain.com/");
if(m.find()){

for(int i=0;i也是
是一个特殊的正则表达式字符,表示任何字符。您必须像这样转义:
host=([a-z0-9\./:]*)
@m0skit0,不,a
在字符类中并不特殊。
group()
将返回整个表达式匹配/找到的内容,我怀疑它应该是
group(1)
返回捕获组匹配的内容-相等后的值抱歉,没有回复这么长时间。我的问题是注意力不集中。我不知道我必须调用什么find()。谢谢你的详细回答!如果你知道我是如何为这些正则表达式而生我的气的话。Eclipse IDE与新ADT经常发生冲突。我不知道为什么。但是这使一项舒适的工作变得非常复杂。使用API 13一切都很好。另外,
是一个特殊的正则表达式字符,表示任何字符。你必须像这样逃避它:
host=([a-z0-9\./:]*)
@m0skit0,不,a
在字符类中不是特殊的。
group()
将返回整个表达式匹配/找到的内容,我怀疑它应该是
group(1)
返回捕获组匹配的内容-相等后的值抱歉,没有回复这么长时间。我的问题是注意力不集中。我不知道我必须调用什么find()。谢谢你的详细回答!如果你知道我是如何为这些正则表达式而生我的气的话。Eclipse IDE与新ADT经常发生冲突。我不知道为什么。但是这使一项舒适的工作变得非常复杂。使用API 13,一切都很好。由于
match
If
语句的范围内,因此此代码将抛出编译时错误。能否请您也包括一个解释?由于
match
if
语句的范围内,此代码将引发编译时错误。能否请您也包括一个解释?