1.1 正则表达式的用途
场景:
- 搜索一个文件,包含单词 car,但是不想把其他包含字符串 car 的单词也找出来。
- 通过服务器动态生成网页,将包含 url 的变成可点击的,即用
<a>
标签包裹。 - form 表单对电子邮件格式的验证。
- 将代码中的 size 替换成 isize,但是不把其他包含 size 的单词替换掉。
- 把包含 Application 的计算机文件系统中的文件显示出来。
等。
1.2 如何使用正则表达式
两种基本用途:搜索和替换。
1.2.1 用正则表达式进行搜索
- 搜索一个文件,包含单词 car,但是不想把其他包含字符串 car 的单词也找出来。
const reg = /[Cc][Aa][Rr]/g; const str = 'this is a car, and this is a card. The car is big, and the card is small.'; let match; while ((match = reg.exec(str))) { console.log(`匹配的单词:${match[0]},index:${match.index}`); } // 匹配的单词:car,index:10 // 匹配的单词:car,index:39
参考
匹配一个词的边界。一个词的边界就是一个词不被另外一个“字”字符跟随的位置或者没有其他“字”字符在其前面的位置。注意,一个匹配的词的边界并不包含在匹配的内容中。换句话说,一个匹配的词的边界的内容的长度是0。(不要和[]混淆了)