论坛首页 入门技术论坛

正则表达式

浏览 1510 次
锁定老帖子 主题:正则表达式
该帖已经被评为新手帖
作者 正文
   发表时间:2007-12-21  

“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。

  • 句点符号 .

假如你现在想写一个3个字符的单词必须是以z开头n结尾。那么你可以写z.c那么他匹配"zyc","z*c"还包括空格

  1. 正则表达式z.c   
  2. 匹配:zyc,z*c,z c,z&c等  
  • 方括号[ ]

假如正则表达式z[asdy]c,那么他只匹配zac,zsc,zdc,zyc,因为方括号内只能匹配单个的字符

  1. 正则表达式z[asdy]c   
  2. 匹配:zac,zsc,zdc,zyc  
  • "或"符号 |

假如你现在想匹配zac,zsc,zyyc那么你的正则表达式应该这样写z(a|s|yy)c,因为方括号只能匹配单个字符,这里只能用园括号

java 代码
  1. 正则表达式:z(a|s|yy)c   
  2. 匹配:zac.zsc.zyyc  
  •  表示匹配次数的符号

表示匹配次数的符号
符号次数
*0次或者多次
+1次或者多次
0次或者1次
{n}n次
{n,m}n到m此

那么看下列例子:

[0-9]{3}\-[0-9]{2}\-[0-9]{4}

上面的这个正则表达式的意思前3位必须是0-9的数字然后是“-”做连接符号,0-9的数字出现2次然后是“-”在然后就是0-9的数字出现4次那么他匹配的是123-12-1234

[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}

上面的这个表达式在第一个表达式的基础上改进的,就不做过多的解释,\-?的意思是"-"连接符可以出现0-1次那么他匹配123-12-1234,也匹配123121234

[0-9]{4}[a-zA-Z]{2}

在看上述表达式是前4位必须是0-9的数字,后2位必须是a-z的字母或者是A-Z的字母,那么它匹配1234aa,也匹配1234AA

  • "否"字符 ^:表示不想匹配的字符[^z]表示非z的字符
  •   常用的符号
  • 符号等价的正则表达式
    \d[0-9]
    \D[^0-9]
    \w[0-9A-Z]
    \W[^0-9A-Z]
    \s[\t\n\r\f]
    \S[^\t\n\r\f]
  • ^\d+$ //匹配非负整数(正整数 + 0) 
    ^[0-9]*[1-9][0-9]*$ //匹配正整数 
    ^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0) 
    ^-[0-9]*[1-9][0-9]*$ //匹配负整数 
    ^-?\d+$ //匹配整数 
    ^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0) 
    ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数 
    ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0) 
    ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数 
    ^(-?\d+)(\.\d+)?$ //匹配浮点数 
    ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 
    ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 
    ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 
    ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 
    ^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 
    ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址 
    ^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
    
     
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics