Emacs Lisp 正则表达式规范

特殊字符

 . * + ? [ ^ $ \

例如:

  (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...)

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

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

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

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

转载于:https://my.oschina.net/u/563463/blog/161649

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值