当前位置:   article > 正文

【正则表达式】一文看懂正则表达式

【正则表达式】一文看懂正则表达式
  1. 基本字符匹配

    • .: 匹配任何单个字符(除了换行符)
    • \w: 匹配任何单词字符(等同于[a-zA-Z0-9_]
    • \d: 匹配任何数字字符(等同于 [0-9]
    • \s: 匹配任何空白字符(如空格、制表符、换页符等)
    • \b: 匹配一个单词边界
  2. 量词

    • x?: x出现0次或1次
    • x*: x出现0次或多次
    • x+: x出现至少1次,可以重复多次
    • x{n}: x精确出现n次
    • x{n,}: x至少出现n次
    • x{n,m}: x出现次数介于n和m之间
  3. 集合与范围

    • [abc]: 匹配任何一个列表中的字符,这里匹配’a’、‘b’或’c’
    • [a-z]: 匹配任何小写字母
    • [A-Za-z]: 匹配任何大小写字母
    • [0-9]: 匹配任何数字字符
  4. 元字符转义

    • \.: 匹配一个实际的句点(.是一个特殊字符,需要转义)
    • \(, \): 分组和捕获匹配的内容
    • \\: 匹配一个反斜杠字符
    • \t, \n, \r: 匹配制表符、换行符和回车符
  5. 分组与引用

    • (xyz): 将xyz作为一个分组,可以用于量词和后面引用
    • \1, \2, …: 引用前面第1、2…个分组捕获的内容
  6. 位置锚点

    • ^: 匹配字符串的开始
    • $: 匹配字符串的结束
    • \A: 匹配整个输入字符串的开始
    • \z: 匹配整个输入字符串的结束(注意区别于\Z,它在有些环境下也匹配可能存在的行尾换行符)
  7. 选择和连接

    • x|y: 匹配 x 或者 y
    • xy: 先匹配 x 再匹配 y
  8. 前瞻与后瞻断言

    • (?=patt):正向前瞻断言,匹配后面紧跟 patt 的位置,但不包含 patt 本身
    • (?!patt):负向前瞻断言,匹配后面不紧跟 patt 的位置
    • (?<=patt):正向后瞻断言,匹配前面紧跟 patt 的位置
    • (?<!patt):负向后瞻断言,匹配前面不紧跟 patt 的位置

正则表达式是一种强大的文本处理工具,用于搜索、匹配和替换文本中的特定模式。以下是150个常用的正则表达式示例,它们可以帮助你在各种编程语言和文本编辑器中进行高效的文本处理。

  1. 匹配任意字符:.

  2. 匹配任意字符(除换行符):[^\n]

  3. 匹配一个或多个字符:+

  4. 匹配零个或多个字符:*

  5. 匹配零个或一个字符:?

  6. 匹配指定字符集合中的任意一个字符:[abc]

  7. 匹配不在指定字符集合中的任意一个字符:[^abc]

  8. 匹配一系列字符:[a-z]

  9. 匹配一系列字符(包括大写):[a-zA-Z]

  10. 匹配一系列数字:[0-9]

  11. 匹配一系列字母或数字:[a-zA-Z0-9]

  12. 匹配一系列空白字符:[\s]

  13. 匹配一系列非空白字符:[\S]

  14. 匹配一系列换行符:\n

  15. 匹配一系列制表符:\t

  16. 匹配一系列回车符:\r

  17. 匹配字符串开头:^

  18. 匹配字符串结尾:$

  19. 匹配或表达式:(a|b)

  20. 匹配指定字符串:Hello

  21. 匹配指定字符串(不区分大小写):(?i)Hello

  22. 匹配电子邮件地址:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

  23. 匹配URL:https?://[^\s]+

  24. 匹配IP地址(IPv4):\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

  25. 匹配IPv6地址:([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}

  26. 匹配美国社会安全号码:^\d{3}-\d{2}-\d{4}$

  27. 匹配信用卡号(简单形式):\d{16}$

  28. 匹配十六进制颜色代码:#([0-9a-fA-F]{6})$

  29. 匹配HTML标签:<[^>]+>

  30. 匹配XML/HTML注释:<!--.*?-->

  31. 匹配日期格式(MM/DD/YYYY):(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/\d{4}

  32. 匹配时间格式(HH:MM):([01]?[MH]|2[0-3]):[0-5][MN]

  33. 匹配邮政编码(美国):^\d{5}(-\d{4})?$

  34. 匹配邮政编码(加拿大):^[A-Za-z]\d[A-Za-z] ?\d[A-Za-z]\d$

  35. 匹配密码强度(至少6个字符,包括大小写字母和数字):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}$

  36. 匹配IP地址(IPv4)范围:((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

  37. 匹配IPv6地址(压缩形式):(?!.*::.*::)(?!.*::)(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}(?::[A-Fa-f0-9]{1,4})?$

  38. 匹配美国电话号码(带区号):^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$

  39. 匹配英国电话号码:^(?:(?:\+44|0044)\s?\d{4}|\d{5}|\s?\d{4})[- ]?\d{6}$

  40. 匹配ISBN-10:^\d{9}[\dX]$

  41. 匹配ISBN-13:^\d{13}$

  42. 匹配IPv4地址范围:((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\s?-\s?((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

  43. 匹配IPv6地址范围:([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){7})$

  44. 匹配MAC地址:^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$

  45. 匹配域名:^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\.)+[A-Za-z]{2,6}$

  46. 匹配文件路径(Windows):^([a-zA-Z]:)?(\\[^\\]*\\.[^\\]*)$

  47. 匹配文件路径(Unix/Linux):^(\/[^\/]*)*\/?$

  48. 匹配URL参数:\?([^&=]+)=([^&]*)(&|$)

  49. 匹配HTML属性值:\s*([^\s=]+)\s*(=\s*(?:"(?:\\["]*[^"]+)"|'(?:\\[']*[^']+)'|(\S+)))?\s*

  50. 匹配CSS类名:\.([\w-]+)

  51. 匹配IP地址(CIDR格式):(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:[0-9]|[1-2][0-9]|3[0-2])$

  52. 匹配美国电话号码(带扩展):^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})[-. ]?([0-9]{3,4})?$

  53. 匹配国际电话号码:^\+?[1-9]\d{1,14}$

  54. 匹配美国税号(EIN):^\d{2}-\d{7}$

  55. 匹配货币金额(美元):^\$?(\d{1,3})(,\d{3})*(\.\d{2})?$

  56. 匹配货币金额(欧元):^\€?(\d{1,3})(,\d{3})*(\.\d{2})?$

  57. 匹配货币金额(英镑):^\£?(\d{1,3})(,\d{3})*(\.\d{2})?$

  58. 匹配百分比:^\d{1,3}(,\d{3})*(\.\d{1,2})?%$

  59. 匹配IPv4地址的主机名:^(\d{1,3}\.){3}\d{1,3}(:\d+)?$

  60. 匹配URL中的端口号::\d+

  61. 匹配URL中的路径:\/[\w-.~:@&=+$,%#?]+

  62. 匹配URL中的查询字符串参数:\?(\w+)=([^&]*)(&|$)

  63. 匹配URL中的查询字符串:\?[\w=&]+

  64. 匹配用户名(3-15个字符,字母、数字、下划线):^[a-zA-Z0-9_]{3,15}$

  65. 匹配密码(至少8个字符,包括大小写字母、数字和特殊字符):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_]).{8,}$

  66. 匹配日期格式(YYYY-MM-DD):^\d{4}-\d{2}-\d{2}$

  67. 匹配时间格式(HH:MM:SS):^\d{2}:\d{2}:\d{2}$

  68. 匹配ISO 8601日期时间格式:^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?$

  69. 匹配RFC 2822日期时间格式:^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2}:\d{2} -\d{4}$

  70. 匹配RFC 3339日期时间格式:^\d{4}-\d{2}-\d{2}([Tt](\d{2}:\d{2}(:\d{2}(\.\d+)?)?)?(Z|[+-]\d{2}:\d{2})?$

  71. 匹配ISO 8601时间格式:^(\d{2}:\d{2}(:\d{2}(\.\d+)?)?)?$

  72. 匹配ISO 8601日期格式:^\d{4}-\d{2}-\d{2}$

  73. 匹配RFC 3339完整日期时间格式:^\d{4}-\d{2}-\d{2}([Tt](\d{2}:\d{2}(:\d{2}(\.\d+)?)?)?(Z|[+-]\d{2}:\d{2})?$

  74. 匹配RFC 2822完整日期时间格式:^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2}:\d{2} -\d{4}$

  75. 匹配URL中的子域名:^(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}$

  76. 匹配URL中的顶级域名:^[a-zA-Z]{2,}$

  77. 匹配URL中的协议:^https?:\/\/

  78. 匹配URL中的主机名:^([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(:\d+)?$

  79. 匹配URL中的路径和查询字符串:\/[\w-.?]+\?[\w=&]*$

  80. 匹配URL中的锚点#[\w-.?]+$

  81. 匹配HTML注释:<!--.*?-->

  82. 匹配HTML标签(不包括空格):<[^>]+>

  83. 匹配HTML属性:\s+[^\s=]+(?:=(?:".*?"|'.*?'|[^\s>]+))?

  84. 匹配HTML实体:&#?[\w-]+;

  85. 匹配CSS选择器:^[^\s]+[^\s]*([\s,]+[^\s]+[^\s]*)*

  86. 匹配CSS属性:\-?[_a-zA-Z]+(?=[\s:][:][^\s;]+)

  87. 匹配CSS数值:(?:\d*\.)?\d+(?:em|ex|px|in|cm|mm|pt|pc|%)?

  88. 匹配JavaScript变量名:\b[a-zA-Z_$][0-9a-zA-Z_$]*\b

  89. 匹配JavaScript函数名:\bfunction\s+[\w$]+

  90. 匹配JavaScript注释:\/\/.*|\/\*.*?\*\/

  91. 匹配JSON字符串:"(?:[^"\\]|\\.)*"

  92. 匹配JSON数字:-?(?:0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?

  93. 匹配JSON对象:\{\s*[\"\w\$\"][^\"]*\"[^:]*:(?:[^{},]+|{[^}]*})[^,]*\}

  94. 匹配JSON数组:\[\s*(?:[^[\],]+|{[^}]*})[^\]]*\]

  95. 匹配JSON对象键:\"(?:[^"\\]|\\.)*\"

  96. 匹配JSON对象键值:\{[^{}]*\}

  97. 匹配JSON数组元素:\[[^[]*\]

  98. 匹配XML标签:<(?!\?)[^>]+>

  99. 匹配XML属性:\s+[^\s=]+(?:=(?:".*?"|'.*?'|[^\s>]+))?

  100. 匹配XML注释:<!--.*?-->

  101. 匹配空白行:^[\s\t]*$

  102. 匹配非空白行:^[^\r\n]+

  103. 匹配特定单词:\bword\b

  104. 匹配单词边界:\b

  105. 匹配行首:^

  106. 匹配行尾:$

  107. 匹配数字边界:(?<!\d)123(?!\d)

  108. 匹配重复字符:a{3}

  109. 匹配重复字符序列:(abc){2,3}

  110. 匹配重复数字序列:(\d)\1

  111. 匹配特定模式的重复:(a+|b)*

  112. 匹配特定模式的非重复:(a|b)*?

  113. 匹配任意字符的重复:.*

  114. 匹配特定字符的重复:[a-zA-Z]*

  115. 匹配特定数字的重复:[0-9]*

  116. 匹配特定长度的字符串:^.{5}$

  117. 匹配特定长度范围内的字符串:^.{5,10}$

  118. 匹配特定字符长度的字符串:^[a-zA-Z]{5}$

  119. 匹配特定字符长度范围内的字符串:^[a-zA-Z]{5,10}$

  120. 匹配特定数字长度的字符串:^\d{5}$

  121. 匹配特定数字长度范围内的字符串:^\d{5,10}$

  122. 匹配特定模式的字符串:^[a-zA-Z0-9_-]{5,10}$

  123. 匹配特定模式的字符串(不包含特殊字符):^[a-zA-Z0-9]{5,10}$

  124. 匹配特定模式的字符串(包含特殊字符):^[a-zA-Z0-9!@#$%^&*()_-]{5,10}$

  125. 匹配特定模式的字符串(邮箱):^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

  126. 匹配特定模式的字符串(URL):^(https?:\/\/)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?$

  127. 匹配特定模式的字符串(IP地址):^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

  128. 匹配特定模式的字符串(邮政编码):^\d{5}(-\d{4})?$

  129. 匹配特定模式的字符串(电话号码):^\(?(\d{3})\)?[-. ]?(\d{3})[-. ]?(\d{4})$

  130. 匹配特定模式的字符串(ISBN):^(?!.*--.*)(\d{10}|\d{13}|\d{13} [a-zA-Z0-9])$

  131. 匹配特定模式的字符串(信用卡号):^(?:4[0-9]{12}(?:[8-9]\d{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$

  132. 匹配特定模式的字符串(IPv6地址):^([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4}|:)$

  133. 匹配特定模式的字符串(MAC地址):^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2}|:)$

  134. 匹配特定模式的字符串(时间戳):^\d{10}$

  135. 匹配特定模式的字符串(十六进制颜色代码):^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

  136. 匹配特定模式的字符串(HTML实体):&#?[\w-]+;

  137. 匹配特定模式的字符串(CSS类名):\.[\w-]+

  138. 匹配特定模式的字符串(CSS ID):#[\w-]+

  139. 匹配特定模式的字符串(文件扩展名):\.(jpg|jpeg|png|gif)$

  140. 匹配特定模式的字符串(文件路径):^(\/[a-zA-Z0-9\-._~:@&=+$,;%#-]+)+$

  141. 匹配特定模式的字符串(URL参数):\?([^&=]+)=([^&]*)(&|$)

  142. 匹配特定模式的字符串(URL查询字符串):\?([^&=]+)=([^&]*)(&|$)(.*)?

  143. 匹配特定模式的字符串(URL锚点):#([^&=]+)(&|$)

  144. 匹配特定模式的字符串(日期时间格式):^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$

  145. 匹配特定模式的字符串(RFC 3339日期时间格式):^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?$

  146. 匹配特定模式的字符串(ISO 8601日期格式):^\d{4}-\d{2}-\d{2}$

  147. 匹配特定模式的字符串(ISO 8601时间格式):^\d{2}:\d{2}:\d{2}(\.\d+)?$

  148. 匹配特定模式的字符串(RFC 2822日期时间格式):^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2}:\d{2} -\d{4}$

  149. 匹配特定模式的字符串(JSON对象键):"[\w-]+"

  150. 匹配特定模式的字符串(JSON数组元素):"[\w-]+"(,|$)

这些正则表达式可以用于验证输入、搜索特定模式、提取信息等多种场景。它们在编程、数据分析、日志处理等领域都非常有用。在使用时,你可能需要根据实际情况调整正则表达式,以适应不同的文本格式和需求。
这些正则表达式覆盖了多种常见的文本匹配场景,包括基本的字符匹配、字符串匹配、数据格式验证、编程语言元素匹配等。在实际应用中,你可能需要根据具体情况对这些表达式进行调整和优化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/499782
推荐阅读
  

闽ICP备14008679号