加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则匹配与替换 regexp & regsub

发布时间:2020-12-14 06:17:21 所属栏目:百科 来源:网络整理
导读:正则匹配是使用正则表达式匹配字符串的一种方法;在脚本编写过程中,经常需要处理一些文本,而这些文本中可能只有部分信息是有用的,我们需要从文本中提取出这些有用信息;这时候,就需要编写特定的正则表达式,将文本中符合正则表达式的字符串抓取出来,然

正则匹配是使用正则表达式匹配字符串的一种方法;在脚本编写过程中,经常需要处理一些文本,而这些文本中可能只有部分信息是有用的,我们需要从文本中提取出这些有用信息;这时候,就需要编写特定的正则表达式,将文本中符合正则表达式的字符串抓取出来,然后对其进行分解、组合、替换等处理,得到符合需求的处理结果。

正则表达式十分灵活,这也使其具有强大的匹配能力,熟练的编写正则表达式,几乎可以匹配任何形式的字符串。因此,在脚本设计中,熟练地使用正则表达式,是一种十分重要的技能,可以有效的提高脚本的运行效率。

使用正则表达式需要借助两个工具:regexp 和 regsub,分别用于匹配和替换。

regexp

regexp 是用于判断正则表达式是否全部或者部分匹配目标字符串的命令,匹配返回 1,否则返回 0。

regexp 有两种用法,一种是仅匹配,另一种是匹配子串

第一种用法举例 ? regexp ?{^([0-9]+[a-z]+|[A-Z]+[0-9]+)$} ?123abc,这个正则表达式用于匹配“数字开头且小写字母结尾” 或者 “大写字母开头且数字结尾” 的表达式,所以返回值为 1

详细解释: ^ 匹配开头,$ 匹配结尾,中间的 | 表示 “或”, + 表示前面的字符出现一次或者多次

第二种用法子串匹配举例 ? regexp ?{([0-9]+)s([a-z]+)} ?"there are 100 apples" ? str01 ? sub01 ? sub02 ?,这个正则表达式用于匹配“一个或多个数字加一个空格加一个或多个小写字母”,返回1

详细解释: 表达式中包括两个子串 ([0-9]+) 和 ([a-z]+),所以 str01="100 apples" ? ?子串sub01=100 ? ?子串sub02=apples

?

regsub

regsub 是用于对目标字符串中满足正则表达式的部分进行替换,并将替换后的结果存入新的变量中,匹配成功返回 1,否则返回 0。

举例 ? regsub ?{there} ?“they live there lives” ?their ?x ?, 正则表达式为 there ,匹配字符串中的单词 there,将其替换为 their,并将替换后的字符串存入变量 x, 返回 1

注意: ?regsub 有个选项 -all,如果没有这个开这个选项,则只替换第一个匹配, 否则替换所有匹配到的目标

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读