黑马程序员技术交流社区
标题:
关于正则表达式的一些知识~!
[打印本页]
作者:
胡大强
时间:
2012-6-15 23:28
标题:
关于正则表达式的一些知识~!
1.在正则表达式中,“\”永远出现在一个有着特殊含义的字符序列的开头,这个序列可以由一个或多个字符构成。
注意:若要搜索“\”本身,就必须对\字符进行转义,相应的转移序列是两个连续的反斜杠字符\\
2.在一个完整的正则表达式里,字符\的后面永远跟着另一个字符,^ 定义字符串的开头 $ 定义字符串的结尾
3.一定要避免让一个区间的尾字符小于它的首字符
‘-’(连字符)作为一个特殊的元字符,只能用在[和]之间,在其他地方,’-’只是一个普通字符
在同一个字符集合中可以给出多个字符区间,如[A-Za-z0-9]
我们平时用正则表达式。。其实很多人都没有去特意的记它,所以。。这里列举几个常识。。。欢迎补充~!
作者:
sbeeqnui1987
时间:
2012-6-15 23:47
一个是建表语句格式如下 :
create【空格若干】table 【表名和其他信息】
正则表达式如下:create\s+table\s+.+
第二个是建索引语句格式如下 :
create【空格和字母若干】index【空格和字母下划线等若干】
正则表达式如下:create[\sA-Za-z]+index[\sA-Za-z_]+
像【空格和字母下划线等若干】这样的说法比较模糊,上面的正则表达式可以正常匹配正确的语句,但是对于错误语句的限制不够,还有进一步修改的余地。
在JAVA中使用正则表达式时,应该import下面两个类
import java.util.regex.Matcher;
import java.util.regex.Pattern;
另外"\"应该被替换成"\\"。
具体方法是:
String sql="create table test(id varchar(10) not null)"
String reg="create\\s+table\\s+.+";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(sql);
boolean b = m.matches();
得到的布尔值表示sql是否匹配正则表达式reg。
作者:
张_涛
时间:
2012-6-15 23:48
如果要在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在java.util.regex包中定义。Pattern类的主要作用是进行正则规范的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范.
String类对正则表达式的支持:
public boolean matches(String regex) 字符串匹配
public String replaceAll(String regex,String replacement) 字符串替换
public String[] split(String regex) 字符串拆分
作者:
王红霞
时间:
2012-6-16 10:15
利用正则表达式分解和转换IP地址:
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2