您当前的位置:首页 > 互联网教程

1-7 正则表表达式—查找功能

发布时间:2025-05-22 07:00:24    发布人:远客网络

1-7 正则表表达式—查找功能

一、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进制数字表示转义字符: