js、Python、Java等正则匹配

正则匹配方式多种多样,学会了具体的判断规则,写起来就容易多了。

分类:锚字符、元字符  表达式

锚字符:

^、\A、$、\Z、\B、\b

元字符:

.、\w、\W、\s、\S、\d、\D

脱字符:

[^xxx]

说明:

\d ----》匹配任意数字

\w --》匹配任意数字和字母

\D ----》数字之外的字符匹配

\s --》匹配任意空白符

\S ---》匹配任意非空白符

\A ---》字符串的匹配 单行匹配,对于换行没有效果

$ ---》行尾匹配,以某个字符结尾

\Z ---》与$相反

\b --》边界匹配   \b也属于转义符  需要特殊处理

\B ---》非单词的边界匹配

多字符匹配:

x?  ---》匹配1个多0个

x* --》匹配0个或无数个

.* --》平常所使用的任意字符匹配

x+ --》至少匹配1个

x{n} --》匹配指定的n个

x{n,} --》匹配至少n个,若多于n个全部匹配

x{n,m} --》匹配至少n个,最多m个

x|y ---》匹配x或y

基本字符都在上面了,需要匹配什么样的数据,只需要适当的组合就行了,不明白的可以对照上面的说明,参考一个写好的正则表达式进行推敲即可,常见的正则匹配类型如下:

电话号码匹配(电话和手机):

'/^([1]\d{10}|([\((]?0[0-9]{2,3}[)\)]?[-]?)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?)$/'

网址匹配:

^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.[a-zA-Z]{2,4})(\:[0-9]+)?(/[^/][a-zA-Z0-9\.\,\?\'\\/\+&%\$#\=~_\-@]*)*$

邮箱匹配:

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

图片匹配(爬虫居多):

s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

身份证匹配:

/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/

其实各门语言的用法都是大同小异的,就是一个语法的差异问题,好多人问在js里面怎么用,在java里面怎么不能用,在PHP里面怎么用等等,不仅仅是一个正则,好多东西都是如此,参加过培训的0基础出身的小朋友更应该深有体会,学了一门语言,上班也不短了,好像自己知道的来来回回就那么点东西,稍微变变就不会了,万变不离其宗,面向过程也好,面向对象也罢,学习一门新的语言,你不能简单的知道敲一个fuc之后编辑器直接将function方法完全暴露,这是方便,这也是坑,或许你只知道func里面传什么,至于为什么这么传,它代表的意义是什么,传出去之后,数据在堆栈里面是如何进出的,你可能不知道,把这些稍微偏底层的东西搞一搞,你会更上一个台阶

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正则表达式全部符号解释(转) 常用正则表达式大全 (转) 不错的正则博客 正则的方法 var reg = /[1-...
    me__me11阅读 999评论 0 0
  • Java的正则表达式讲解:(为了能看清,本文正则表达式用中文的句号代替英文句点) 英文句点符号:匹配单个任意字符。...
    红姑娘阅读 4,394评论 0 2
  • 1,正则表达式的作用:匹配一个字符串中的一些内容 2,声明和使用: 1)构造函数 var reg=new RegE...
    WDL_1a39阅读 746评论 0 1
  • 一、匹配符 \:指出接着的字符为特殊字符。 ^:表示匹配的字符必须在最前边。 $:表示匹配的字符必须在最后边。 *...
    活叁黄辉冯阅读 791评论 0 3
  • 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{...
    johney_zhou阅读 423评论 0 1