1、^
表示开头,$
表示结尾
^打卡
代表一句话以打卡开头就识别,打卡$
代表一句话以打卡结束就识别。
2、任意字符
([\s\S]*)
或 [\s\S]*
比如 打卡([\s\S]*)晒单
表示在打卡和晒单之间加入任意文字都能识别。
而 ^打卡([\s\S]*)晒单$
则表示,这句话必须以打开开头、以晒单结尾、中间加入任意文字才能识别。
3、大陆手机号
1[3-35-9]\d{9}
如果精准匹配,则为 ^1[3-35-9]\d{9}$
,同理 ^1[3-35-9]\d{9}
为手机号开头,1[3-35-9]\d{9}$
为手机号结束。
但是实际上不用精准匹配很容易误识别一串长数字,所以需要加对非数字头和非数字结尾的判定:
(?:^|\D)1[3-35-9]\d{9}(?!\d)
4、订单号
比如订单号:20230526092331904248,他是年月日时分秒+6位数,则可以写成
^2023(?:(?:0[1-9]|1[0-2])(?:0[1-9]|[12][0-9]|3[01])(?:[01][0-9]|2[0-3])(?:[0-5][0-9]){2})\d{6}$
如果还有其他情形,自行修改,或者chatGPT?