正则的使用

1:正则的概念

正则表达式(regular expression)是一个描述字符规则的对象。可以用来检查一个字符串是否含有某个子字符串,将匹配的子字符串做替换或者从某个字符串中取出符合某个条件的子串等。
为什么要用正则:
前端往往有大量的表单数据校验工作,采用正则表达式会使得数据校验的工作量大大减轻。常用效果:邮箱、手机号、身份证号等。

2:创建方式

第一种方式:

var reg = new RegExp(“study”,“ig”);   // 第二个参数为修饰符

i:表示忽略大小写ignore。
g:表示全局匹配,查找所有匹配而非在找到第一个匹配后停止 global。
第二种方式:

var reg = /study/ig;

3:正则对象方法

test: 正则实例对象的test方法返回一个布尔值,表示当前模式是否能匹配参数字符串

/cat/.test('cats and dogs') // true

上面代码验证参数字符串之中是否包含cat,结果返回true。
如果正则表达式带有g修饰符,则每一次test方法都从上一次结束的位置开始向后匹配

var r = /x/g;
var s = '_x_x';
r.lastIndex // 0
r.test(s) // true
r.lastIndex // 2
r.test(s) // true
r.lastIndex // 4
r.test(s) // false

上面代码的正则表达式使用了g修饰符,表示是全局搜索,会有多个结果。接着,三次使用test方法,每一次开始搜索的位置都是上一次匹配的后一个位置。
带有g修饰符时,可以通过正则对象的lastIndex属性指定开始搜索的位置

var r = /x/g;
var s = '_x_x';
r.lastIndex = 4;
r.test(s) // false

上面代码指定从字符串的第五个位置开始搜索,这个位置是没有字符的,所以返回false。
exec:用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为null。

var s = '_x_x';
var r1 = /x/;
var r2 = /y/;
r1.exec(s) // ["x"]
r2.exec(s) // null

上面代码中,正则对象r1匹配成功,返回一个数组,成员是匹配结果;正则对象r2匹配失败,返回null。

4:字符串函数

replace: 按照给定的正则表达式进行替换,返回替换后的字符串。
字符串对象的replace方法可以替换匹配的值。它接受两个参数,第一个是正则表达式,表示搜索模式,第二个是替换的内容。

str.replace(search, replacement)

正则表达式如果不加g修饰符,就替换第一个匹配成功的值,否则替换所有匹配成功的值。

'aaa'.replace('a', 'b') // "baa"
'aaa'.replace(/a/, 'b') // "baa"
'aaa'.replace(/a/g, 'b') // "bbb"
//上面代码中,最后一个正则表达式使用了g修饰符,导致所有的b都被替换掉了。

match: 字符串实例对象的match方法对字符串进行正则匹配,返回匹配结果。

var s = '_x_x';
var r1 = /x/;
var r2 = /y/;
s.match(r1) //["x"]
s.match(r2) // null
//从上面代码可以看到,字符串的match方法与正则对象的exec方法非常类似:匹配成功返回一个数组,匹配失败返回null。

如果正则表达式带有g修饰符,则该方法与正则对象的exec方法行为不同,会一次性返回所有匹配成功的结果

var s = 'abba';
var r = /a/g;
s.match(r) // ["a", "a"]
r.exec(s) // ["a"]

search:检索与正则表达式相匹配的值。返回字符串中第一个与正则表达式相匹配的子串的起始位置。如果没有找到则返回-1。

'_x_x'.search(/x/)// 1
//上面代码中,第一个匹配结果出现在字符串的1号位置。

5:正则表达式构成

字面量字符
元字符—限定符
元字符—字符匹配符
元字符—定位符
元字符—转义符
元字符—选择匹配符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi是一种面向对象的编程语言,它支持正则表达式使用正则表达式是一种强大的文本匹配工具,可以用于在字符串中查找、替换和提取特定模式的文本。 在Delphi中,可以使用TRegEx类来进行正则表达式的操作。下面是使用正则表达式的基本步骤: 1. 引入正则表达式单元: 在Delphi中,需要使用System.RegularExpressions单元来引入正则表达式相关的类和函数。 2. 创建TRegEx对象: 使用TRegEx类的Create方法创建一个TRegEx对象,可以指定一些选项来控制正则表达式的匹配行为。 3. 编写正则表达式模式: 正则表达式模式是用来描述要匹配的文本模式的字符串。可以使用各种元字符和特殊字符来构建模式,例如通配符、字符类、重复次数等。 4. 进行匹配操作: 使用TRegEx对象的IsMatch方法可以判断一个字符串是否与正则表达式模式匹配。使用Match方法可以获取匹配到的结果。 5. 处理匹配结果: 匹配结果是一个TMatch对象,可以通过该对象的Value属性获取匹配到的字符串。还可以通过Groups属性获取捕获组的内容。 下面是一个简单的示例代码,演示了如何在Delphi中使用正则表达式: ```delphi uses System.RegularExpressions; var regex: TRegEx; input: string; pattern: string; match: TMatch; begin input := 'Hello, World!'; pattern := '\b\w+\b'; // 匹配单词 regex := TRegEx.Create(pattern); if regex.IsMatch(input) then begin match := regex.Match(input); while match.Success do begin Writeln(match.Value); match := match.NextMatch; end; end; end; ``` 上述代码中,使用正则表达式模式`\b\w+\b`来匹配字符串中的单词,并输出匹配到的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值