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

正则表达式——1

发布时间:2020-12-14 02:18:34 所属栏目:百科 来源:网络整理
导读:这是在读《精通正则表达式》过程中的一些记录 a alert BEL 警报 b backspace BS 退格 e escape ESC Escape字符 f formfeed FF 进纸符 n nextline LF 换行符 r return CR 回车 t tab HT 水平制表符 v vertical VT 垂直制表符 注:换行符n出现在几乎

这是在读《精通正则表达式》过程中的一些记录

a alert <BEL> 警报
b backspace <BS> 退格
e escape <ESC> Escape字符
f formfeed <FF> 进纸符
n nextline <LF> 换行符
r return <CR> 回车
t tab <HT> 水平制表符
v vertical <VT> 垂直制表符
注:换行符n出现在几乎所有平台上,通常对应ASCII的<LF>字符,八进制编码12。Mac中对应<CR>,十进制编码015。在Java或任意一种.NET语言中,不论采用什么平台,都对应<LF>字符。
回车符对应<CR>字符,在Mac中对应<LF>字符,在Java或任意一种.NET语言中,都对应<CR>字符。
如果需要程序在可能运行的平台上都能通用的换行符就用n。
[:alnum:] 字母字符和数字字符
[:alpha:] 字母
[:blank:] 空格和制表符
[:cntrl:] 控制字符
[:digit:] 数字
[:graph:] 非空字符(即空白字符和控制字符以外的字符)
[:lower:] 小写字母
[:print:] 类似[:graph:],但是包含空白字符
[:punct:] 标点符号
[:space:] 所有的空白字符
[:upper:] 大写字母
[:xdigit:] 十六进制中容许出现的数字0-9a-fA-F

有的locale定义了字符等价类,表示某些字符在进行排序之类的操作时应视为等价。等价类的表示法类似[:……:],但是用等号取代冒号,=n=][=a=。

GNU Emacs语法类
GNU Emacs不支持传统的w,s之类,相反,它使用特殊的序列来引用语法类,
schar 匹配Emacs语法类中char描述的字符
Schar 匹配不在Emacs语法类中的字符
sw 匹配构成单词的字符
s- 匹配空白字符
Emacs的特殊之处在于,这些字符组包含的字符是可以临时更换的,所以构成单词的字符组中的字符可以根据所编辑文本的变化而变化

匹配的起始位置:G
Perl的G有三个很有用的方面
1.G指向位置是每个目标字符串的属性,而不是设定这些位置的正则表达式的属性。也就是说,多个正则表达式可以依次对同一个字符串进行匹配,都使用上一轮匹配设定的G
2.Perl的正则运算符有一个选项/c,它规定了如果匹配失败,不要重新设定G,而是保持之前的值不变。结合第一点就可以从某个位置开始尝试使用多个正则表达式进行匹配,直到匹配成功,然后在下面的文本中继续寻找匹配。
3.G对应的属性可以用于正则表达式无关的结构(Perl中的pos函数)来检查和修改。可能有人希望设定这个位置来规定从什么位置开始寻找匹配,以及只从那个位置开始的匹配,同样如果语言支持本条功能,而没有直接提供它,那么我们可以用本条功能来模拟它。

PHP和Ruby中的G指向当前匹配的开头位置,而Perl、Java.util.regex和.NET匹配上一次匹配的结束位置。

忽略优先量词 即尽量匹配少的内容 *? +? ?? {min,max}? 占有优先量词 即所谓的贪婪,往后匹配尽可能多的内容,目前只有在java.util.regex和PCRE中可以实现 *+ ++ ?+ {min,max}+

(编辑:李大同)

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

    推荐文章
      热点阅读