常用正则表达式

中文字符 双字节字符 空白行 Email地址 网址URL 手机(国内) 电话号码(国内) 负浮点数 匹配整数 正浮点数 腾讯QQ号 邮政编码 IP 身份证号 格式日期 正整数 负整数 用户名

  • JS

  • PHP

  • go

  • JAVA

  • rb

  • py

  • 到底什么是正则表达式?

    在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

    常用元字符
    代码说明
    .匹配除换行符以外的任意字符
    \w匹配字母或数字或下划线
    \s匹配任意的空白符
    \d匹配数字
    \b匹配单词的开始或结束
    ^匹配字符串的开始
    $匹配字符串的结束
    常用限定符
    代码/语法说明
    *重复零次或更多次
    +重复一次或更多次
    ?重复零次或一次
    n重复n次
    {n,}重复n次或更多次
    {n,m}重复n到m次
    常用反义词
    代码/语法说明
    \W匹配任意不是字母,数字,下划线,汉字的字符
    \S匹配任意不是空白符的字符
    \D匹配任意非数字的字符
    \B匹配不是单词开头或结束的位置
    [^x]匹配除了x以外的任意字符
    [^aeiou]匹配除了aeiou这几个字母以外的任意字符

    以下是一些常用的正则表达式示例:

    匹配手机号码
    /^1[3-9]\d{9}$/

    解释:
    ^ 表示匹配字符串的开头。
    1 表示匹配数字1。
    [3-9] 表示匹配3到9之间的任意数字。
    \d 表示匹配任意数字。
    {9} 表示匹配前面的数字出现9次。
    $ 表示匹配字符串的结尾。

    匹配电子邮件地址
    /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

    解释:
    ^ 表示匹配字符串的开头。
    \w+ 表示匹配一个或多个字母、数字或下划线。
    ([-+.]\w+)* 表示匹配一个或多个连字符、加号或点号,后面跟着一个或多个字母、数字或下划线。这个组合可以出现零次或多次。
    @ 表示匹配一个电子邮件地址中的“@”符号。
    \w+ 表示匹配一个或多个字母、数字或下划线。
    ([-.]\w+)* 表示匹配一个或多个连字符或点号,后面跟着一个或多个字母、数字或下划线。这个组合可以出现零次或多次。
    \. 表示匹配一个电子邮件地址中的“.”符号。
    \w+ 表示匹配一个或多个字母、数字或下划线。
    ([-.]\w+)* 表示匹配一个或多个连字符或点号,后面跟着一个或多个字母、数字或下划线。这个组合可以出现零次或多次。
    $ 表示匹配字符串的结尾。
    匹配身份证号码
    scss
    Copy code
    /^\d{17}(\d|X)$/

    解释:
    ^ 表示匹配字符串的开头。
    \d{17} 表示匹配前面的数字出现17次。
    (\d|X) 表示匹配一个数字或大写字母X。
    $ 表示匹配字符串的结尾。

    匹配URL地址
    /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/

    解释:
    ^ 表示匹配字符串的开头。
    (https?|ftp) 表示匹配http、https或ftp中的一个。
    :\/\/ 表示匹配“://”字符组合。
    [^\s/$.?#] 表示匹配除空格、/、$、?和#之外的任意字符。
    . 表示匹配任意字符。

    * 表示匹配前面的字符或字符组合出现零次或多次。
    $ 表示匹配字符串的结尾。

    匹配中文字符
    /[\u4e00-\u9fa5]/

    解释:
    [\u4e00-\u9fa5] 表示匹配Unicode编码在4E00到9FA5之间的字符。

    匹配IP地址
    /^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/

    解释:
    ^ 表示匹配字符串的开头。
    ((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3} 表示匹配前面的数字(25[0-5]、2[0-4]\d、1\d{2}、[1-9]\d、\d)后面跟着一个点号,这个组合可以出现3次。
    (25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d) 表示匹配前面的数字(25[0-5]、2[0-4]\d、1\d{2}、[1-9]\d、\d)。
    $ 表示匹配字符串的结尾。
    这些是常见的正则表达式示例,但是在实际使用中可能还需要根据具体的需求进行修改和定制。


    匹配URL地址
    /^(http|https):\/\/([a-z0-9]+[.])?[a-z0-9]+[.][a-z]+(\/[\w\-\.\/\?\@\%\!\#\&\=\+\~\:\;\,]*)?$/

    解释:
    ^ 表示匹配字符串的开头。
    (http|https) 表示匹配http或https。
    :\/\/ 表示匹配 ://。
    ([a-z0-9]+[.])? 表示匹配字母或数字组成的子域名(可以出现0次或1次)。
    [a-z0-9]+ 表示匹配字母或数字组成的主域名。
    [.] 表示匹配点号。
    [a-z]+ 表示匹配字母组成的顶级域名。
    (\/[\w\-\.\/\?\@\%\!\#\&\=\+\~\:\;\,]*)? 表示匹配以 / 开始的路径和查询参数(可以出现0次或1次)。
    $ 表示匹配字符串的结尾。

    匹配HTML标签
    /<[^>]+>/

    解释:
    < 表示匹配 <。
    [^>]+ 表示匹配除 > 以外的任意字符,出现一次或多次。
    > 表示匹配 >。

    返回顶部 留言