Linux日常小知识正则表达式(linux正则表达式实验报告)

Linux日常小知识正则表达式(linux正则表达式实验报告)

编码文章call10242025-07-09 11:08:334A+A-

正则表达式是一种用于描述文本模式的工具。它可以用来匹配、查找或替换字符串中符合一定规则的文本。正则表达式由普通字符和元字符组成,用来描述一个或多个字符串的特征。在不同的编程语言和文本编辑器中,正则表达式的语法略有不同。

正则表达式可以检查一个字符串是否符合某种规范,同时也可以从一个字符串中提取符合规范的子串。例如,一个电话号码通常由若干数字和符号(如 +、-、(、) 等)组成,可以使用正则表达式来匹配符合格式的电话号码。下面我来分享一下日常用的表达式。

  1. 匹配手机号:
  • /^1[3456789]\d{9}$/ (匹配以1开头,第二位数字为3-9,后面跟9个数字的手机号码)
  • 例如:13712345678、15987654321
  1. 匹配邮箱:
  • /^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)$/ (匹配常见邮箱格式的正则表达式)
  • 例如:12345678@qq.com。
  1. 匹配身份证号:
  • /(^\d{15})|(^\d{18})|(^\d{17}(\d|X|x)$)/ (匹配15位或18位身份证号码)
  • 例如:110101199001011234、11010119900101123x
  1. 匹配URL地址:
  • /(http[s]?|ftp)://([^/\s]+/)(.*)/i (匹配URL地址)
  • 例如:https://www.google.com/search?q=regex、http://www.baidu.com
  1. 匹配日期格式:
  • /\d{4}-\d{1,2}-\d{1,2}/ (匹配"YYYY-MM-DD"格式的日期)
  • 例如:2023-04-10、2019-8-8
  1. 匹配IP地址:
  • /\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}/ (匹配IP地址)
  • 例如:192.168.1.1、127.0.0.1
  1. 匹配邮政编码:
  • /[1-9]\d{5}(?!\d)/ (匹配六位邮政编码)
  • 例如:100101、518000
  1. 匹配中文字符:
  • /[\u4e00-\u9fa5]/ (匹配中文字符)
  • 例如:中文、文字
  1. 匹配英文字母:
  • /[a-zA-Z]/ (匹配英文字母)
  • 例如:hello、world
  1. 匹配空白行:
  • /\n\s*\r/ (匹配空白行)
  • 例如:\n\r\n、\n \r\n
  1. 匹配QQ号:
  • /[1-9][0-9]{4,}/ (匹配有效的QQ号,即第一位不能为0,至少为5位数字)
  • 例如:123456789、10000
  1. 匹配微信号:
  • /^a-zA-Z+$/ (匹配微信号,以字母开头,可使用字母、数字、减号、下划线,长度在6~20个字符之间)
  • 例如:My_WeChat、myweixin123
  1. 匹配汉字、字母、数字及下划线:
  • /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/ (匹配汉字、字母、数字及下划线)
  • 例如:中文abc123、123_abc
  1. 匹配小数点后两位的数字:
  • /^\d+(.\d{0,2})?$/ (匹配小数点后两位的数字)
  • 例如:123.45、100
  1. 匹配正整数:
  • /^[1-9]\d*$/ (匹配正整数)
  • 例如:1、1234
  1. 匹配负整数:
  • /^-[1-9]\d*$/ (匹配负整数)
  • 例如:-1、-1234
  1. 匹配非负整数(正整数 + 0):
  • /^\d+$/ (匹配非负整数)
  • 例如:0、1234
  1. 匹配非正整数(负整数 + 0):
  • /^(-[1-9]\d*|0)$/ (匹配非正整数)
  • 例如:-1、0
  1. 匹配HTML标记:
  • /<(.)>.</\1>|<(.*) />/ (匹配HTML标记)
  • 例如:<a href="http://www.baidu.com">百度一下</a>、<img src="image.jpg" />
  1. 匹配密码强度:
  • /(?=.[A-Z])(?=.[a-z])(?=.[0-9])(?=.[\W_]).{8,}/ (匹配包含大小写字母、数字、特殊字符的强密码,长度不少于8位)
  • 例如:Passwd_123、Hello@world1

21.匹配24小时制的时间:

  • /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/ (匹配24小时制的时间)
  • 例如:00:00、23:59

22.匹配12小时制的时间:

  • /^(0?[1-9]|1[0-2]):[0-5]0-9$/i (匹配12小时制的时间)
  • 例如:11:30 am、12:45 PM

23.匹配时间段:

  • /^(0?[0-9]|1[0-2])(:[0-5][0-9])?\s*(am|pm)\s*-?\s*(0?[0-9]|1[0-2])(:[0-5][0-9])?\s*(am|pm)$/i (匹配时间段)
  • 例如:10am-12pm、2PM - 4pm

24.匹配日期:

  • /^\d{4}-\d{1,2}-\d{1,2}$/ (匹配“YYYY-MM-DD”格式的日期)
  • 例如:2023-04-10、2019-8-8

25.匹配时间间隔:

  • /^([1-9]|[1-5][0-9]|60)(min|minute|minutes|hour|hours|day|days)$/i (匹配时间间隔)
  • 例如:30 minutes、2 hours、1 day

26.匹配某一个小时内的时间:

  • /^(0[1-9]|1[0-2]):([0-5][0-9])(am|pm)-(\1:\d\d(am|pm)|1[0-2]:[0-5]0-9)$/i (匹配某一个小时内的时间)
  • 例如:10:00am-11:00am、12:30PM-1:15PM

27.匹配整点时间:

  • /^(\d{1,2})(:00)?(am|pm)?$/i (匹配整点时间)
  • 例如:3pm、12:00am、5AM

28.匹配每天定时执行的时间:

  • /^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/ (匹配每天定时执行的时间)
  • 例如:6:00、14:30、23:59

29.匹配指定分钟后执行的时间:

  • /^(?:(?:([01]?\d|2[0-3]):([0-5]?\d):\d+)|(?:\d+ second(s)? from now))$/ (匹配指定分钟后执行的时间)
  • 例如:10:30:00、15:05:30、20 seconds from now

Cron表达式举例:

0 0 * * *:每天零点开始执行任务。
分别对应“0分、0时、任意日期、任意月份、任意星期几”。
0 */2 * * *:每2小时开始执行任务。
分别对应“0分、任意偶数时、任意日期、任意月份、任意星期几”。
0 0 1 * *:每个月的第一天零时执行任务。
分别对应“0分、0时、第1天、任意月份、任意星期几”。
0 0-8/2 * * *:每天凌晨0点到上午8点之间,每隔2小时执行一次任务。
分别对应“0分、0点到8点之间、任意日期、任意月份、任意星期几”。
0 0 23 ? * 6#3:每月的第三个周六的23点执行任务。
分别对应“0分、23时、任意日期、任意月份、第三个周六”。

整理不易,欢迎大家点赞转发收藏,关注我每天分享运维小知识。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4