• Java正则表达式基础用法


    正则表达式:用来描述需要匹配的一系列语句的字符串
    注:下面例子统一采用正则表达式->可以通过的字符串 正则表达式<>不可以通过的字符串格式

    常用正则表达式地址

    1.单个符号

    1.1英文句号.

    匹配任意单个字符

    h.p -> hop h-p hhp hop
    h.p <> hhhp hisop h,.p
    

    1.2中括号[]

    匹配方括号里面的单个字符

    h[abcd]p -> hap hbp hcp hdp
    h[abcd]p <> hadp habp hbbp
    

    1.3 符号“或” |

    匹配其中的任意一项字符(串)

    h(ad|bc|c_)p -> hadp hbcp hc_p
    h(ad|bc|c_)p <> hacP habcdp hadbcP 
    

    1.4 匹配次数的符号* + ? {n} {n,m}

    * 0次或者多次
    + 1次或者多次
    ? 0次或者多次
    {n} n次
    {n,m} n次到m次之间

    正则表达式:1[3-9]*\-[0-9]+\-[0-9]?\-[0-9]{2}\-[0-9]{1,2}
    解释:1 {没有或者39之间取多个数} - {09之间取一个或者多个数} - {不取数或者09之间取多个数} - {09之间取两个数} - {09之间取12个数}
    注:由于 "-" 是特殊符号,因此需要在该符号前面加 "\" 转义符 
    

    1.5符号否 ^

    表示不取方括号里面范围的,排除里面的其他任意符号都可以

    正则表达式:^[3-4]{2}
    解释:取两位不含34的符号 (-- 78 d7)
    

    1.6 非空符号 \S

    匹配的字符不能为空字符

    正则表达式:[0-9]*\S
    解释:必须有一组数字,不能为空的 (不能为null)
    

    1.7空符号\s

    空符号,匹配一个空格、制表符、回车符、换页符,不可以匹配输入的多个空格

    1.8空格符\r

    空格符,与 \n \tab相同

    1.9字符串结尾$

    $ 以字符串结尾

    2.快捷符号

    2.1\d表示[0-9]

    2.2\D表示[^0-9]

    2.3\w表示[0-9A-Z_a-z]

    2.4\W表示[^0-9A-Z_a-z]

    2.5\s表示[\t\n\r\f]

    2.6\S表示[^\t\n\r\f]

    3.常用表达式

    (([a-z]|_)(\\w*)){6,20}:匹配以字母或下划线开头,字母数字下划线结尾的字符串,且长度为6到20位
    ^\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
    /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ :年-月-日
    /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ :月/日/年
    ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$ :Emil
    /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ :电话号码
    ^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$ :IP地址
    匹配中文字符的正则表达式: [\u4e00-\u9fa5]
    匹配双字节字符(包括汉字在内):[^\x00-\xff]
    匹配空行的正则表达式:\n[\s| ]*\r
    匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
    匹配首尾空格的正则表达式:(^\s*)|(\s*$)
    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
    匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
    匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
    匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

  • 相关阅读:
    protobufjs实现protobuf序列化与反序列化
    新鲜面经——腾讯金融类后台开发
    怎么让孩子树立时间观念
    智能制造优化,RFID生产线管理系统解决方案
    程序员的七夕浪漫时刻
    网络原理之TCP/IP
    行泊一体冰火两重天:1000万辆市场释放,量产难题待解
    什么是PCB中的光学定位点,不加可不可以?
    IntelliJ IDEA 下 JavaWeb 配置MySQL 连接
    vue源码分析---数据代理、数据劫持
  • 原文地址:https://blog.csdn.net/BadBoyxiaolin/article/details/127092917