Bootstrap

100个正则表达式的入门实例和40个组合类型正则表达式实例

100个正则表达式的入门实例和40个组合类型正则表达式实例

正则表达式详解

数字:^[0-9]*$
n位的数字: ^\d{n}$
至少n位的数字: ^\d{n,}$
m-n位的数字: ^\d{m,n}$
零和非零开头的数字:^(0 [1-9][0-9]*)$
非零开头的最多带两位小数的数字: ^([1-9][0-9]*)+(\[0-9][1,2})?$
带1-2位小数的正数或负数: ^(\-)?\d+( \. \d{1,2})$
正数、负数、和小数:^(\- \+)?\d+(\.\d+)?$
有两位小数的正实数: ^[0-9]+(\.[0-9]{2})?$
有1~3位小数的正实数: ^[0-9]+(\.[0-9]{1,3})?$
非零的正整数: ^[1-9]\d*$ 或 ([1-9][0-9]*){1,3}$或 A\+?[1-9][0-9]*$
非零的负整数:^\-[1-9][]0-9"*$ 或 -[1-9]\d*$
非负整数: ^\d+$ 或 [1-9]\d*|0$
非正整数: ^-[1-9]\d*|0$ 或 ^((-\d+)(0+))$
非负浮点数: ^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*10.\d*[1-9]\d*10?\.0+10$
非正浮点数: ^((-\d+( .ld+)?)1(0+(\.0+)?))$ 或(-([1-9]\d*\.\d*l0\.\d*[1-9]\d*))10?\.0+10$

正浮点数: ^[1-9]\d*\.\d*lo\.\d*[1-9]\d*$ 或(([0-9]+\.[0-9]*[1-9][0-9]*)I([O-9]*[1-9][0-91*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
负浮点数: ^-([1-9]\d*\.\d*l0 .\d*[1-9]\d*)$ 或 (-(([0-9]+\.[0-9]*[1-9][0-9]*)1([0-9]*[1-9][0.9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

浮点数: ^(-?\d+)(\.\d+)?$ 或 -?([1-9]\d*\.\d*0\.\d*[1-9]\d*0?\.0+10)$

100个正则表达式的入门实例

  1. 匹配任何单个字符:.
  2. 匹配特定的字符:例如匹配字母a:a
  3. 匹配一组字符中的任何一个:例如匹配元音字母:[aeiou]
  4. 匹配除了一组字符以外的任何字符:例如匹配非元音字母:[^aeiou]
  5. 匹配重复的字符,如aaa或bbb:(a|b)\1+
  6. 匹配任意数字:\d
  7. 匹配任何非数字字符:\D
  8. 匹配任何空格字符:\s
  9. 匹配任何非空格字符:\S
  10. 匹配任何字母、数字和下划线字符:\w
  11. 匹配任何非字母、数字和下划线字符:\W
  12. 匹配前面的字符零次或多次:*
  13. 匹配前面的字符一次或多次:+
  14. 匹配前面的字符零次或一次:?
  15. 匹配字符串的开头:^
  16. 匹配字符串的结尾:$
  17. 匹配单词边界:\b
  18. 匹配非单词边界:\B
  19. 捕获分组中的文本并将其存储到变量中:(pattern)
  20. 不捕获分组中的文本:(?:pattern)
  21. 匹配前面的字符n次:{n}
  22. 匹配前面的字符至少n次:{n,}
  23. 匹配前面的字符至少n次但不超过m次:{n,m}
  24. 匹配任何一个换行符:\n
  25. 匹配任何一个回车符:\r
  26. 匹配任何一个制表符:\t
  27. 匹配一个或多个空格字符:\s+
  28. 匹配一个或多个非空格字符:\S+
  29. 匹配一个或多个字母:[a-zA-Z]+
  30. 匹配一个或多个数字:\d+
  31. 匹配一个或多个数字和一个可选的小数部分:\d+(.\d+)?
  32. 匹配一个IP地址:\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
  33. 匹配一个URL:(http|https)://[\w-.]+(:\d+)?(/[\w/_.]*)?
  34. 匹配一个电子邮件地址:[\w.-]+@[\w.-]+.[a-zA-Z]+
  35. 匹配一个美国邮政编码:\d{5}(-\d{4})?
  36. 匹配一个日期(MM/DD/YYYY格式):(0[1-9]|1[0-2])/([0-2][1-9]|3[0-1])/\d{4}
  37. 匹配一个时间(HH:MM:SS格式):([01]\d|2[0-3]):[0-5]\d:[0-5]\d
  38. 匹配一个US电话号码:\d{3}-\d{3}-\d{4}
  39. 匹配一个HTML标签:<[^>]*>
  40. 匹配一个XML标签:<.*?>
  41. 匹配一个HTML注释:<!--.*?-->
  42. 匹配一个XML注释:<!--.*?-->
  43. 匹配一个CSS选择器:.[\w-]+
  44. 匹配一个CSS颜色值:#[a-fA-F0-9]{6}
  45. 匹配一个JSON键值对:"[\w\s]+" *: *("[^"]+"|\d+|true|false|null)
  46. 匹配一个Markdown标题:^#{1,6}\s+.+
  47. 匹配一个Markdown无序列表项:^*\s+.+
  48. 匹配一个Markdown有序列表项:^\d+.\s+.+
  49. 匹配一个Markdown链接:[[^]]+]([^)]+)

50. 匹配一个Markdown加粗文本:**.+**

51. 匹配一个Markdown斜体文本:*.+*

52. 匹配一个Markdown代码块:[\s\S]+?

53. 匹配一个Markdown引用文本:>\s+.+

54. 匹配一个Markdown图片:![[^]]+]([^)]+)

55. 匹配一个Markdown删除线:.+

56. 匹配一个CSV文件行:("[^"]+"|[^,]+)(,[^,]+)*

57. 匹配多个HTML标签:<(div|p|a|span)\b.?>[\s\S]?</\1>

58. 匹配一个Java注释://.|/*[\s\S]?*/

59. 匹配一个Python注释:#.*

60. 匹配一个JavaScript注释://.|/*[\s\S]?*/

61. 匹配一个SQL注释:--.|/[\s\S]?*/

62. 匹配一个C语言注释://.|/*[\s\S]?*/

63. 匹配一个C++注释://.|/*[\s\S]?*/

64. 匹配一个PHP注释://.|/*[\s\S]?*/

65. 匹配一个Ruby注释:#.

66. 匹配一个Swift注释://.|/*[\s\S]?*/

67. 匹配一个Perl注释:#.*

68. 匹配一个Shell注释:#.*

69. 匹配一个XML属性:\b\w+="[^"]"

70. 匹配一个XML标签内的文本:<[^>]>([^<])</[^>]>

71. 匹配一个XML CDATA块:<![CDATA[.?]]>

72. 匹配一个XML注释:<!--.?-->

73. 匹配一个CSS样式规则:[\w-]+ : [^;]+;

74. 匹配一个CSS媒体查询:@media\s+[^{]+{[\s\S]+?}

75. 匹配一个CSS关键帧动画:@keyframes\s+[\w-]+\s{[\s\S]+?}

76. 匹配一个CSS选择器列表:([\w-.#]+\s,\s*)[\w-.#]+

77. 匹配一个CSS单位值:\d+(px|em|%)

78. 匹配一个CSS URL值:url(['"]?[^)'"]+['"]?)

79. 匹配一个CSS颜色值:#[a-fA-F0-9]{3,6}

80. 匹配一个CSS字体名称:font-family:[^;]+;

81. 匹配一个CSS盒模型样式:box-(sizing|shadow|border|padding|margin):\S+;

82. 匹配一个CSS Flexbox布局样式:display:\s(-webkit-)?flex\S*;

83. 匹配一个CSS Grid布局样式:display:\s*-ms-grid\S*;

84. 匹配一个CSS过渡效果样式:transition:\S+;

85. 匹配一个CSS动画效果样式:animation:\S+;

86. 匹配一个CSS变量定义:--\w+:\S+;

87. 匹配一个CSS媒体查询的宽度值:(?<=width:)\d+(px|em|%)

88. 匹配一个CSS媒体查询的高度值:(?<=height:)\d+(px|em|%)

89. 匹配一个CSS媒体查询的最大宽度值:(?<=max-width:)\d+(px|em|%)

90. 匹配一个CSS媒体查询的最小宽度值:(?<=min-width:)\d+(px|em|%)

91. 匹配一个CSS媒体查询的最大高度值:(?<=max-height:)\d+(px|em|%)

92. 匹配一个CSS媒体查询的最小高度值:(?<=min-height:)\d+(px|em|%)

93. 匹配一个CSS媒体查询的屏幕方向:(?<=orientation:)[\w-]+

94. 匹配一个CSS媒体查询的设备类型:(?<=device-type:)[\w-]+

95. 匹配一个CSS媒体查询的分辨率:(?<=resolution:)\d+(dpi|dpcm|dppx)

96. 匹配一个CSS媒体查询的颜色模式:(?<=color-index:)[\d-]+

97. 匹配一个CSS媒体查询的光照条件:(?<=light-level:)[\w-]+

98. 匹配一个CSS媒体查询的触摸设备支持:(?<=pointer:)[\w-]+

99. 匹配一个CSS媒体查询的音频输出支持:(?<=output:)[\w-]+

100. 匹配一个CSS媒体查询的交互方式:(?<=interaction:)[\w-]+

40个组合类型正则表达式实例

  1. 匹配一个IP地址:^(?:(?:2[0-4]\d|25[0-5]|1\d{2}|[1-9]\d|\d).){3}(?:2[0-4]\d|25[0-5]|1\d{2}|[1-9]\d|\d)$
  2. 匹配一个URL链接:^(?:https?://)?(?:www.)?[-a-zA-Z0-9@:%.+~#=]{2,256}.[a-z]{2,6}\b(?:[-a-zA-Z0-9@:%+.~#?&//=]*)$
  3. 匹配HTML标签:<([a-z]+)([^<]+)(?:>(.)</\1>|\s+/>)$
  4. 匹配电话号码:^+?[0-9]{1,3}?[-.\s]?(([0-9]{1,3})|[0-9]{1,3})?[-.\s]?[0-9]{1,3}[-.\s]?[0-9]{1,4}[-.\s]?[0-9]{1,4}$
  5. 匹配电子邮件地址:^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$
  6. 匹配美国社会安全号码(SSN):^(?!219-09-9999|078-05-1120)(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$
  7. 匹配日期:^([1-9]|[12][0-9]|3[01])- /.- /.\d\d$
  8. 匹配时间:^([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?$
  9. 匹配银行卡号:^[0-9]{13,19}$
  10. 匹配邮政编码:^\d{5}-\d{4}|\d{5}$
  11. 匹配双字节字符串(包括中文字符):^[\u4e00-\u9fa5]+$
  12. 匹配DNS主机名:^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)(.[a-zA-Z0-9]+(-[a-zA-Z0-9]+))+$
  13. 匹配十六进制颜色代码:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
  14. 匹配XML标记:<([a-z]+)([^<]+)(?:>(.)</\1>|\s+/>)$
  15. 匹配MD5哈希值:^[0-9a-fA-F]{32}$
  16. 匹配SHA1哈希值:^[0-9a-f]{40}$
  17. 匹配SHA256哈希值:^[0-9a-f]{64}$
  18. 匹配ISO 8601日期时间格式:^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])Tt:([0-5]\d):([0-5]\d)(.\d+)?([Zz]|(+-:([0-5]\d)))?)$
  19. 匹配UUID:^[a-fA-F0-9]{8}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{12}$
  20. 匹配ISBN(International Standard Book Number):^(?=.{17}|.{13}∣.13)[0-9]{1,5}([- ]?[0-9]+){2,4}[- ]?[0-9X]$
  21. 匹配MAC地址:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa
  22. 匹配HTML颜色代码:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
  23. 匹配IPv6地址:^(?!:*::)(([a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}|([a-fA-F0-9]{1,4}:){1,6}:|[a-fA-F0-9]{1,4}::([a-fA-F0-9]{1,4}:){1,5}|([a-fA-F0-9]{1,4}:){2}::([a-fA-F0-9]{1,4}:){1,4}|([a-fA-F0-9]{1,4}:){3}::([a-fA-F0-9]{1,4}:){1,3}|([a-fA-F0-9]{1,4}:){4}::([a-fA-F0-9]{1,4}:){1,2}|([a-fA-F0-9]{1,4}:){5}::[a-fA-F0-9]{1,4}:|([a-fA-F0-9]{1,4}:){6}::))(([a−fA−F0−9]1,4:)7[a−fA−F0−9]1,4∣([a−fA−F0−9]1,4:)1,6:∣[a−fA−F0−9]1,4::([a−fA−F0−9]1,4:)1,5∣([a−fA−F0−9]1,4:)2::([a−fA−F0−9]1,4:)1,4∣([a−fA−F0−9]1,4:)3::([a−fA−F0−9]1,4:)1,3∣([a−fA−F0−9]1,4:)4::([a−fA−F0−9]1,4:)1,2∣([a−fA−F0−9]1,4:)5::[a−fA−F0−9]1,4:∣([a−fA−F0−9]1,4:)6::)
  24. 匹配HTML注释:<!--(.*?)-->
  25. 匹配邮件地址中的用户名部分(@符号前面的部分):^[^@\s]+$
  26. 匹配邮件地址中的域名部分(@符号后面的部分):@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$
  27. 匹配XML属性:(\w+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?
  28. 匹配QQ号码:^[1-9]\d{4,}$
  29. 匹配微信号:^[a-zA-Z][-_a-zA-Z0-9]{5,19}$
  30. 匹配中国大陆身份证号码:^\d{17}[\d|x]|\d{15}$
  31. 匹配中国香港身份证号码:^[a-zA-Z]\d{6}([0-9aA])$
  32. 匹配中国澳门身份证号码:^[1|5|7][0-9]{6}([0-9Aa])$
  33. 匹配中国台湾身份证号码:^[a-zA-Z][0-9]{9}$
  34. 匹配16进制数字:^0[xX][0-9a-fA-F]+$
  35. 匹配HTML标签内的文本:<[^>]+>([^<]+)</[^>]+>
  36. 匹配英文字母:^[a-zA-Z]+$
  37. 匹配非负整数:^\d+$
  38. 匹配科学计数法:^[+-]?\d+(?:.\d+)?(?:[eE][+-]?\d+)?$
  39. 匹配CSS选择器:^[.#]?[a-zA-Z0-9_-]+$
  40. 匹配JSON字符串(单引号或双引号包裹的对象或数组):^(?:"(?:\.|[^"])"|'(?:\.|[^'])')$

;