1-7 正则表表达式—查找功能
发布时间:2025-05-22 07:00:24 发布人:远客网络
一、1-7 正则表表达式—查找功能
正则表达式和js配合可以完成3件事。
1.查找一个固定的敏感词出现的位置:
var i=str.indexOf("敏感词",starti);
在str中,从starti位置开始,查找下一个“敏感词”的位置;
省略第二个参数starti,默认从0位置开始查找;
返回值:如果找到,返回敏感词第一个字的位置;
问题:只能查找一种固定的敏感词。
2.模糊查找符合正则表达式要求的敏感词:
问题1:正则默认都是区分大小写的
解决:在第二个/后加后缀i, ignore
问题2:只能返回位置i,无法返回敏感词的内容。
第一种、只查看第一个敏感词的内容和位置:
问题:正则表达式默认只找到第一个就退出;
解决:在第二个/后加后缀g, global(全部);
问题:只能获得内容,无法获得位置;
4.查找每个敏感词的内容和位置: reg.exec();
二、SQL 常用正则表达式
以下是SQL中常用的正则表达式片段,它们用于匹配不同类型的数据:
这个表达式用于验证字符串是否只包含数字,例如电话号码的一部分。
适用于限制特定长度的数字,如邮政编码或社保号中的部分数字。
3.匹配全汉字: ^[\\u4e00-\\u9fa5]{0,}$
用于验证字符串是否只包含中文字符,如中文姓名。
4.匹配英文和数字: ^[A-Za-z0-9]+$
适用于验证电子邮件地址或简短的文本,如用户名。
用于限定字符串中只包含小写字母,如专有名词或单词。
6.匹配Email地址:\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$
这是一种通用的Email地址格式验证模式。
7.匹配域名: [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
用于验证URL中的二级域名或顶级域名部分。
8.匹配手机号码: ^(13[0-9]|14[5|7]|15[0-9]|18[0-9])\d{8}$
确保输入的是中国的手机号码格式。
9.匹配身份证号:(\\d{15}$)|(\\d{18}$)|(\\d{17}(\\d|X|x))$
验证中国大陆的15位、18位身份证号码或部分格式。
10.匹配日期格式:\\d{4}-\\d{1,2}-\\d{1,2}
适用于验证日期,如YYYY-MM-DD格式。
这些正则表达式在SQL查询中帮助我们验证和过滤输入数据,确保数据的准确性和一致性。
三、正则表达式 反斜杠的匹配 2018-11-30
1、在学习正则表达式的过程中,遇到了一直无法正确匹配反斜杠 \,初始使用的是下面两种方法:
2、使用上面两种方法一直无法匹配 4\5中的反斜杠,最终经过查询,发现自己理解错误,字符串存在转义,正则也存在转义
3、在字符串中,我们会用一反斜杠加特定的字符来表达一些特定的功能,比如, \n表示换行, \"表示双引号等等,而如果要输出反斜杠本身,则用 \\如下所示:
4、可以看到,先是 \"被转义成了一个双引号",然后是 \\转义成 \,然后 \n转义为换行,最后是 \"转义成".(这里不会二次转义,比如 \\n,只会转义成 \n,不会再次将 \n转义成换行)
5、但当你在字符串前面加一个 r,表示初始字符串,此时解释器将不对字符串里面的特殊字符进行转义,最外层双引号里面是什么内容,即为什么样的内容,所见即所得
6、在正则表达式中会使用一些通配符,比如 \w表示匹配字母,数字或者下划线; \s表示空白字符; \d匹配数字
7、因此,若要实现正则转义,首先要保证模式字符串里面有反斜杠:
8、因此,正则表达式的解释分为两部分:
9、用以上的正则表达式来查询 3\5是查询不到的,比如:
10、不仅如此, 3/1, 3/2``3/3, 3/4, 3/5, 3/6, 3/7,都查不到
11、但是, 3/8, 3/9可以查询到,接着 3/10查询不到
12、因此可以判断出这个肯定是与8有关的,反斜杠后面的数值不能超过8
13、经过查询发现,反斜杠加8进制数字表示转义字符: