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
语句的范围内,此代码将引发编译时错误。能否请您也包括一个解释?