正则表达式替换定义及使用示例

9次阅读
没有评论

1 捕获组

1.1 定义

正则表达式中的捕获组是通过将部分模式括在圆括号()内定义的,用于提取匹配该部分模式的子字符串,捕获组允许对特定部分的匹配结果进行引用、重复利用或者操作。
使用圆括号 ()来定义一个捕获组。
Ps.部分技术资料中也将“捕获组”称为“分组”。

1.2 引用

在替换字符串中,可以通过 $1,$2,…或 \1,\2,…等方式引用这些捕获组。使用时,在不同软件工具或不同编程语言中可能会有所不同,请查阅相关使用指引。

2 使用示例

2.1 简单捕获组

以字符串“Hello World”为例,如果想要匹配“World”前面的“Hello ”部分:

(Hello )World

此时,“(Hello )”是一个捕获组,它捕获了“Hello ”这个子字符串。
如果使用正则表达式替换功能,想要保留“Hello ”,而去掉“World”,可以替换为:$1

2.2 反向引用

如果想查找连续出现多次相同的单词,如“Hello Hello Hello”,可以使用如下正则表达式:

\b(\w+)\s+\1\s+\1\b

释义:

  • \b 表示英文单词边界;
  • (\w+) 是一个捕获组,匹配一个或多个字母数字字符;
  • \s+ 匹配一个或多个空白字符;
  • \1 是一个反向引用,指向第一个捕获组,确保后面跟随的是与第一个捕获组完全相同的内容。

2.3 多捕获组

如果想要将一个日期格式“2025-03-12”变更为“12/03/2025”,可以使用如下正则表达式:

(\d{4})-(\d{2})-(\d{2})

释义:
创建了3个捕获组:

  • (\d{4}):第一个捕获组,用于匹配年份;
  • (\d{2}):第二个捕获组,用于匹配月份;
  • (\d{2}):第三个捕获组,用于匹配日。

替换字符串写为:$3/$2/$1

正文完
 
itylq
版权声明:本站原创文章,由 itylq 2025-03-12发表,共计706字。
转载说明:本站文章遵循CC-4.0国际许可协议,转载请注明出处(格式如“来源:IT摇篮曲www.itylq.com")。
评论(没有评论)
验证码