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

Emacs Lisp 正则表达式规范

发布时间:2020-12-14 02:08:03 所属栏目:百科 来源:网络整理
导读:特殊字符 . * + ? [ ^ $ 例如: (string-match "^abc.e*?[0-9]$" "abcdefg6") = t 特殊字符区间 在 [ 到之后第二个字符之后或第三个(第二个如果是 ^ ) 之后的 ] 之间的部分,叫做字符集(characters class). `[[a]` 匹配 `[` 或 `a` 在 [: 到 :] 之间的字

特殊字符

. * + ? [ ^ $ 

例如:

(string-match "^abc.e*?[0-9]$"  "abcdefg6") => t

特殊字符区间

[ 到之后第二个字符之后或第三个(第二个如果是 ^) 之后的] 之间的部分,叫做字符集(characters class).

`[[a]` 匹配 `[` 或 `a`

在 [: 到 :] 之间的字符集。这个和 Perl 相同

和 Perl Regexp Expression 的区别:

如果学过 Perl 的正则表达式,许多概念是相同的,就不介绍了,就说说不同的地方:

  1. 分支结构是用 |,而不是 |,也就是说 | 不是一个特殊字符,转义之后才是。

  2. 表示匹配数量的区间的分界符也需要转义: {3,4},所以,{ 也不是特殊字符。

  3. 括号也不是特殊字符,对于分组的括号要进行转义;

    (string-match "(w+)::1" "abc:def") => t

  4. 非捕获型括号的定义 (?:...)

  5. 强制分组名称 `(?:digit...)

可以连续定义相同的分组,最后返回最后捕获的一个分组

(?:2w+)::(?:2w+)
  1. ` == A 匹配文本的开始

  2. ' == z 匹配文本的结束

正则表达式虽然广泛用于许多地方,但标准总有写差别。唉,学了一个学一个。。

(编辑:李大同)

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

    推荐文章
      热点阅读