加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 23:08:05 所属栏目:百科 来源:网络整理
导读:本教程来自于C#程序设计windows版第12章正则表达式章节 基本书写符号 ,[],[^],-,(),| [] 可接收的字符列表 [abcd] 匹配a,b,c,d4个字母中的任意**一个**字符 [^] 不接收的字符列表 ^ 符号非 [^abc] 除abc之外的任意**一个**字符,包括数字,汉字和特殊符号 |

本教程来自于C#程序设计windows版第12章正则表达式章节


基本书写符号,[],[^],-,(),|

  1. [] 可接收的字符列表

    [abcd] 匹配a,b,c,d4个字母中的任意**一个**字符
  2. [^]不接收的字符列表^符号非

    [^abc] 除abc之外的任意**一个**字符,包括数字,汉字和特殊符号
  3. | 匹配|之前或之后的表达式

    ab|cd 匹配ab或者cd
  4. -连字符

    a-z 任意单个小写英文字母
  5. ()将子表达式分组

    (abc) 将字符串abc作为一组
  6. 转义符号

    # 表示符号#,#匹配

限定符*,+,?^,$,{n},{n,},m}

  1. * 指定字符重复0次或者n次

    (abc)* 仅包含任意个abc的字符串
  2. + 指定字符重复至少1次(指定字符重复1次或n次)

    m+(abc)* 表示 以至少一个m开头,后接任意个abc的字符串
  3. ? 指定字符重复0次或者1次

    m+abc? 表示 以至少一个m开头,后接ab或者abc的字符串
  4. ^ 指定起始字符

    ^[0-9]+[a-z]* 表示以至少一个数字开头,后接任意个小写字母的字符串
  5. $ 指定结束字符

    ^[0-9]-[a-z]+$ 表示以至少一个数字开头,后接字符'-',并以至少一个小写字母结尾的字符串
  6. {n} 只能输入n个字符

    [abcd]{3} 表示一个只能含abcd这四个字符的三位字符串
  7. {n,} 至少输入n个字符

    [abcd]{3,} 表示一个只能含abcd这四个字符的长度不小于3的字符串
  8. {n,m} 至少输入n个,至多输入m个字符的字符串

    [abcd]{3,5} 表示一个只能含abcd这四个字符的长度不小于3不大于5的字符串

匹配字符集.,d,D,w,W

  1. . 匹配除换行(n)之外的任何单个字符

    a..b 以a开头,b结尾,中间包括两个任意字符的长度为4的字符串
  2. d匹配单个数字字符,相当于[0-9]

    d{3}(d)? 表示包含3位或4位数字的字符串
  3. D 匹配单个非数字字符,相当于[^0-9]

    D(d)* 表示以单个非数字字符开头,后接任意(可为0)个数字的字符串
  4. w 匹配单个数字,大小写字母和汉字字符

    d{3}w{4} 表示以三个数字开头,后跟4个数字,字母或者汉字的字符串
  5. W 匹配单个除数字,字母和汉字字符以外的其他字符

    W+d{2} 表示以至少一个非数字、字母、汉字开头,两位数字结尾的字符串 eg:#?@10

ps:正则表达式这是对字符串的处理。
参考链接:
正则表达式语法
javascript正则表达式语法

做个学习例子:
请听题:以字母开头^[a-zA-Z],允许包含[],字母[a-zA-Z],数字[0-9]及下划线[_],长度为5到16{5,16}的字符串,用正则表达式来书写

思考过程在读题的过程中已经标出,那么组合一下应该是^[a-zA-Z][a-zA-Z0-9_]{5,16},不能有空格即不能写成^[a-zA-Z][a-zA-Z0-9_] {5,16},有空格则错误

note:

  • []中是可选字符集,无论有多少,只能选一个
  • 我有个问题,就是上面例子中的{5,16},这个看答案的意思是针对前面所有的字符,即两个[][],为什么不是只针对后面那个[],又或者说,{m,n}这种长度模式应该是全局匹配, 即换成下面这道题: 以字母开头,后接允许5到16个包含字母,数字及下划线的字符串,用正则表达式来书写。用js测试一下。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读