黑马程序员技术交流社区
标题:
正则表达式的一些疑惑
[打印本页]
作者:
周朋飞
时间:
2012-6-25 15:37
标题:
正则表达式的一些疑惑
本帖最后由 周朋飞 于 2012-6-25 18:12 编辑
/^[a-zA-Z_]{1}[a-zA-Z_0-9]*$/当中的^[a-zA-Z_]{1}这个括号里的1 是什么意思 这整个是什么意思
作者:
sbeeqnui1987
时间:
2012-6-25 16:35
正则表达式:
/^ :匹配行首,即,从每行的开头开始匹配
[a-zA-Z]{1} :第一个字符要求是字母,即从a到z或者A到Z
作者:
王冰
时间:
2012-6-25 16:35
^[a-zA-Z_]{1}括号里的1 表示开始的一个字符必须是a到z或A到Z中的任意一个字符,如果为其它数字如3就表示开始的3个字符中的每一个必须是a到z或A到Z中的任意一个字符,整个的意思就是说这串字符的第一个必须是以是a到z或A到Z中的任意一个字符开始,后面接着0个或多个a到z或A到Z或0-9中的字符。也就是说形如a,b1,BZ0,Ma0zD都可以
作者:
周兴中
时间:
2012-6-25 16:46
/^[a-zA-Z_]{1}[a-zA-Z_0-9]*$/
{n}:表示正好出现n次,或者说只出现n次 [a-zA-Z_]{1}: 表示大小写字母和下划线这些字符只出现1次,就是说只能是 a-z A-Z _ 中的一个
^:表示行的开头
$:行的结尾
*: 表示出现0次或多次
/^[a-zA-Z_]{1}[a-zA-Z_0-9]*$/ 整句的意思是:
第一个字符只能在(字母和_)之间,第2个字符可以没有或者范围在(字母,数字,下划线)之间.
还有很多符号,请参考API文档.
作者:
张华廷
时间:
2012-6-25 16:57
a-zA-Z]{1} :第一个字符要求是字母,即从a到z或者A到Z
{n}:表示正好出现n次,或者说只出现n次 [a-zA-Z_]{1}: 表示大小写字母和下划线这些字符只出现1次,就是说只能是 a-z A-Z _ 中的一个/^[a-zA-Z_]{1}[a-zA-Z_0-9]*$/ 整句的意思是:第一个字符只能在(字母和_)之间,第2个字符可以没有或者范围在(字母,数字,下划线)之间.
作者:
陈少文
时间:
2012-6-25 17:07
/^[a-zA-Z_]{1}[a-zA-Z_0-9]*$/
^ 行的开头
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
X{1} 指是的恰好出现一次
[a-zA-Z_0-9] a 到 z 或 A 到 Z,两头的字母包括在内(范围)或者_ 或者从0到9
* 零次或多次
$ 行的结尾
楼主这些东西可以不用记
用的时候直接查API,
java.util.regex.Pattern
看得出楼主在学 正则表达式
用途
字符串匹配(字符匹配)
字符串查找
字符串替换
给楼主一个自己总结时的例子:
/*
查找网页中Email地址
用到正则表达式
关键点:
1)建立模式
2)匹配
*/
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailSpider {
public static void main(String[] args)
{
//用BufferedReader目的读取一行
try {
BufferedReader
//需要查找的网页文件
br = new BufferedReader(new FileReader("c:\\20120621.html"));
String line = null;
while((line = br.readLine())!= null)
{
parse(line);
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void parse(String line)
{
//建立模式
Pattern p = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
//匹配
Matcher m = p.matcher(line);
while(m.find())
{
System.out.println(m.group());
}
}
}
作者:
周朋飞
时间:
2012-6-25 18:12
嗯 我同意周兴中的说法 因为我试过 却是下划线开头也可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2