Products
GG网络技术分享 2025-03-18 16:14 36
正则表达式 01到10之间的数字
正则表达式 01到10之间的数字
正则表达式 01到10之间的数字
/^(([0-9]|10).\\d{2}|0|10)$/
非常感谢大神 再问一条 只能是 0,01,02,03,04,05,06,99 数字的
/^(?:0[1-6]?|99)$/
我在搜这个问题的时候,找到的都不是我应用的场景,找到的都是应用于仅仅以数字开头和结尾的情景。我想实现匹配一段字符串中的1~10(且在1~10前后有别的数字的情况都不算),测试了很多次(在python测试),这个写法是可以实现的:
(?<!\\d)([1-9]|10)(?!\\d)
最近公司培训,这周四的培训主题就是“鬼斧神工之正则表达式-施**”。对于正则表达式早有所了解,但是不够系统,真正业务上要用时,还是重度依赖百度,对百度出来的答案,是否完全符合自己的需求就不得而知。而且看 Linux 组的大佬崇**在 vim 中搜索文本经常使用正则去搜,确实效率很高。除此之外,在平时用 less 命令去查日志时,自己都是直接查询子串,然而有的时候,这种直接查询需要查询多次才能得到自己想要的日志,如果可以熟练使用正则,效率一定会翻倍。还有不管是 IDEA 还是 VsCode,在做搜索时都是支持正则搜索的,比如在 IDEA 中 Command + Shift + F 或 Command +Shift + R 做全局搜索或替换使用正则都是非常方便的。所以提前准备起来,找了本《正则表达式必知必会》学习起来,此处做一笔记。
. 字符可以匹配任意单个字符、字母、数字、空格甚至是 . 字符本身。但在绝大多数正则表达式实现里,. 不能匹配换行符\\ 用于转义\\. 匹配字符 . 本身\\\\ 匹配字符 \\ [abc] 匹配字符 a 或 b 或 c,[0-9] 等价于 [0123456789][a-z] 等价于 [abcdefghijklmnopqrstuvwxyz],[A-Z] 等价于 [ABCDEFGHIJKLMNOPQRSTUVWXYZ],[A-z] 等价于 [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz](按照 Ascii 顺序),[A-Za-z0-9] 等价于 [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]很多程序员喜欢把一个字符也定义为一个字符区间,如 [a] 等价于 a,[\\r]? 等价于 \\r?,但前者可以避免产生误解、增加可读性,所以建议一个字符也定义为字符区间
[^a-c] 排除 a 或 b 或 c [\\b] 匹配回退(并删除)一个字符(Backspace 键)\\f 匹配换页符\\r 匹配回车符\\n 匹配换行符\\t 匹配制表符(Tab 键)\\v 匹配垂直制表符在 Unix 或 Linux 上使用 \\n 匹配行尾标记,Windows 上使用 \\r\\n 匹配行尾标记
\\d 匹配任何一个数字字符,等价于 [0-9]\\D 匹配任何一个非数字字符,等价于 [^0-9]\\w 匹配任何一个字母(大小写均可)或数字类型或下划线字符,等价于 [A-z0-9_]\\W 匹配任何一个非字母(大小写均可)或数字类型或下划线字符,等价于 [^A-z0-9_]\\s 匹配任何一个空白字符,等价于 [\\f\\r\\n\\t\\v ],注意包含空格\\S 匹配任何一个非空白字符,等价于 [^\\f\\r\\n\\t\\v ] .、[、]、\\、+、*、?、(、) 等具有特殊含义的符号被称为元字符,如果要匹配元字符,则需要对元字符进行转义,如 \\. 匹配字符 .,\\[ 匹配字符 [,\\] 匹配字符 ],\\\\ 匹配字符 \\/ 字符并不是元字符,在绝大多数正则表达式解析器中如果要匹配字符 / 并不需要转义,但有些解析器却要求必须转义才能够匹配,所以建议总是在需要匹配字符 / 时对其进行转义,即使用 \\/ 匹配字符 /,这样在所有解析器中都能够正常工作.、+ 这样的元字符出现在字符区间内部时,将会被解释为普通字符,可以不用转义,如 [\\w\\.] 等价于 [\\w.],但为了防止误解,建议显示转义+ 元字符匹配一个或多个字符,如 a+ 匹配一个或多个连续的 a,[0-9]+ 匹配一个或多个连续的数字* 元字符匹配 0 个或多个字符? 元字符匹配 0 个或 1 个字符{n} 重复匹配 n 次{m,n} 重复匹配 m ~ n 次,如 {0,1} 表示最少匹配 0 次,最多匹配 1 次,等价于 ?{m,} 重复匹配至少 m 次* 和 + 是贪婪型元字符,它们会尽可能地从一段文本的开头一致匹配到末尾,而不是碰到一个匹配时就停止,如果想要碰到第一个匹配时就停止,则应该使用元字符对应的懒惰型。* 元字符对应的懒惰型为 *?,+ 元字符对应的懒惰型为 +?。如想要匹配 HTML <b> 标签中的文本,贪婪型正则如下:Demand feedback