热点:

    Java常用正则表达式入门

      [   原创  ]   作者:
    收藏文章 暂无评论

    正则表达式基础应用示例

    1、 正则表达式是一种独立于编程语言的文本处理技术,由特定字符组成,用于定义字符串匹配规则。它并非Java专属,而广泛应用于各种开发场景中。学习正则表达式的主要目的,并非要求掌握编写复杂严谨的验证规则,而是能够理解常见表达式的含义,以便在实际开发中正确使用和维护。毕竟,设计一个精确高效的正则表达式具有较高难度,通常需要丰富的经验积累。

    2、 在正则表达式中,d 表示匹配任意一个数字字符,而 D 则表示非数字字符;w 可以匹配字母、数字或下划线,W 恰好相反,用于匹配非单词字符;s 代表空白字符(如空格、制表符等),S 则匹配非空白字符。符号.用于匹配任意单个字符。需要注意的是,在 Java 中反斜杠具有转义功能,因此书写正则表达式时必须使用双反斜杠,例如应写成 \d 来表示 d。关于数量词,+ 表示前面的字符出现一次或多次,* 表示出现零次或多次,? 表示零次或一次。{n,m} 表示前面的内容至少出现 n 次,最多 m 次;{n,} 表示至少出现 n 次,无上限;{n} 则精确匹配 n 次。

    3、 数字的正则表达式模式可按照不同的格式和要求进行分类描述。仅包含数字的字符串可通过^*\$表示;若需匹配恰好n位的数字,则使用^d{n}\$;当要求至少n位数字时,对应模式为^d{n,}\$;而指定数字位数在m到n之间的表达式为^d{m,n}\$。对于只能由零或非零开头的数字组合,可采用^(0|*)\$来限定。

    4、 若要匹配非零开头且最多保留两位小数的数值,应使用^(*)+(.{1,2})?\$;针对带有一位或两位小数的正负数,表达式为^(-)?d+(.d{1,2})?\$;更通用的情形下,涵盖正数、负数以及小数的格式可通过^(-|+)?d+(.d+)?\$实现。

    5、 若限制为带有两位小数的正实数,其模式为^+(.{2})?\$;而允许包含一至三位小数的正实数则用^+(.{1,3})?\$表示。对于非零的正整数,可用^d*\$、^(*){1,3}\$或^+?*\$等表达式描述;非零的负整数则通过^-0-9*\$或^-d*\$进行匹配。

    6、 非负整数(即大于等于零的整数)可由^d+\$或^d*|0\$表示;非正整数(小于等于零的整数)则对应^-d*|0\$或^((-d+)|(0+))\$。对于非负浮点数(包括零和正浮点数),可使用^d+(.d+)?\$或更完整的^d*.d*|0.d*d*|0?.0+|0\$来覆盖所有情况。

    7、 非正浮点数(零和负浮点数)的匹配方式为^((-d+(.d+)?)|(0+(.0+)?))\$,也可写作^(-(d*.d*|0.d*d*))|0?.0+|0\$。正浮点数的表达式为^d*.d*|0.d*d*\$或^((+.)|(.+)|())\$,用于排除零和负数。

    8、 负浮点数的正则模式为^-(d*.d*|0.d*d*)\$或更复杂的^(-((+.)|(.+)|()))\$,确保仅匹配小于零的浮点值。通用的浮点数匹配(包括正、负及零值)可采用^(-?d+)(.d+)?\$或^-?(d*.d*|0.d*d*|0?.0+|0)\$,以全面覆盖各种合法浮点格式。这些表达式可根据实际需求灵活选用,适用于数据校验、输入控制等场景。

    9、 二、用于验证字符的正则表达式

    10、 1. 仅允许输入汉字:可使用表达式 ^{0,}\$,该规则匹配任意数量的中文字符,适用于需要纯汉字输入的场景。

    11、 2. 仅包含英文字母和数字:可采用 ^+\$ 或更具体的长度限制 ^{4,40}\$,前者不限制长度,后者要求字符总数在4到40之间,适合用户名或密码等字段。

    12、 3. 长度介于3至20之间的任意字符:使用 ^.{3,20}\$,表示可以输入任意类型的字符(除换行符外),但总长度必须在3到20个字符之间。

    13、 4. 仅由26个英文字母构成的字符串:表达式为 ^+\$,确保输入内容只包含大小写英文字母,无数字或符号。

    14、 5. 全部为大写英文字母的字符串:通过 ^+\$ 实现,严格限制只能输入大写字母。

    15、 6. 全部为小写英文字母的字符串:应使用 ^+\$,确保所有字符均为小写形式。

    16、 7. 由数字与英文字母组成的字符串:采用 ^+\$,仅允许字母和数字混合,排除其他特殊符号。

    17、 8. 包含数字、字母或下划线的字符串:可用 ^w+\$ 或限定长度的 ^w{3,20}\$,其中 w 表示字母、数字和下划线,适合用于账户名等命名规范。

    18、 9. 支持中文、英文、数字及下划线:使用 ^+\$,覆盖常见合法输入元素,适用于昵称、用户名等多种场景。

    19、 10. 包含中文、英文和数字但不包括下划线及其他符号:可写为 ^+\$ 或增加长度限制 ^{2,20}\$,避免用户输入非法符号。

    20、 11. 允许包含如 ^ % & , ; = ? \$ 等特殊字符:可通过 .* 或具体设定实现,适用于某些需支持复杂输入内容的文本域。

    21、 12. 禁止输入包含波浪号~的字符:使用 ^*\$,确保整个字符串中不出现~符号,常用于路径或文件名校验。

    22、 三、满足特定业务需求的正则表达式

    23、 1. 验证电子邮件地址:采用 ^+(*)@+(*).+(*)\$,符合标准邮箱格式要求。

    24、 2. 域名验证:使用 ^{0,62}(.{0,62})*.?\$,能够匹配合法域名结构,包括各级子域。

    25、 3. 网址(URL)校验:可使用 ^(https?://)?(+.)*+(/*)?\$ 或更简洁的 ^http://(+.)++(/*)?\$,适用于检测是否为有效的互联网链接。

    26、 4. 手机号码匹配:中国大陆手机号常用格式为 ^(13|14|15|18)d{8}\$,涵盖主流运营商号段,共11位数字。

    27、 5. 固定电话号码验证:支持多种格式如XXX-XXXXXXX、XXXX-XXXXXXXX或无区号形式,正则为 ^((d{3,4}-)|d{3,4}-)?d{7,8}\$,兼容常见的座机输入方式。

    28、 国内固定电话号码的格式通常为区号加号码,例如0511-4405222或021-87888822,其结构可表示为三位或四位数字组成的区号后接一个连字符,再连接七位或八位的电话号码,即满足d{3}-d{8}或d{4}-d{7}的模式。身份证号码分为两种类型:一种是旧式的15位纯数字编码,另一种是现行的18位数字编码,个别末尾可能为字母x或X,对应的正则表达式为^d{15}|d{18}\$。而短身份证号码可能长度在7到18位之间,且允许以字母x或X结尾,可用^(.{7,18})(x|X)?\$或更宽松的^d{8,18}|{8,18}|.{8,18}?\$来描述。

    29、 对于账户名称,要求必须以字母开头,总长度控制在5至16个字符之间,仅允许包含字母、数字和下划线,其格式应符合^{4,15}\$的要求。密码设置方面,建议以字母开头,长度介于6到18个字符之间,只能使用字母、数字及下划线,对应规则为^w{5,17}\$。若需设置强密码,则必须同时包含大写字母、小写字母和数字,不得使用特殊符号,长度限定在8到10位之间,表达式为^(?=.*d)(?=.*)(?=.*).{8,10}\$。

    30、 日期格式一般采用年-月-日的形式,如2023-04-05,符合^d{4}-d{1,2}-d{1,2}\$的结构。判断是否为一年中的有效月份时,合法值为01至09或1至12,可表示为^(0?|1)\$。而一个月中的天数应为01至09、1至29,以及30或31,对应的有效范围可通过^((0?)|()|30|31)\$进行匹配。

    soft.zol.com.cn true https://soft.zol.com.cn/1186/11862948.html report 5221 正则表达式基础应用示例 1、 正则表达式是一种独立于编程语言的文本处理技术,由特定字符组成,用于定义字符串匹配规则。它并非Java专属,而广泛应用于各种开发场景中。学习正则表达式的主要目的,并非要求掌握编写复杂严谨的验证规则,而是能够理解常见表达式的含义,以...
    不喜欢(0) 点个赞(0)
    随时随地资讯查报价 就上ZOL手机客户端,点击或扫描二维码下载
    立即下载

    正则表达式学习工具

    更新时间:2016年09月07日

    用户评分:0 | 0人点评

    软件类型:试用软件

    软件语言:简体中文

    正则表达式学习工具
    • 更新时间:2016年09月07日
    • 软件大小:0.2MB
    • 软件分类:编程工具
    • 语言种类:简体中文
    • 软件评级:0 人点评