正则表达式
正则表达式基础
吴声子夜歌
个人学习记录
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
正则表达式——重复匹配
这个正则表达式本身没有任何错误,可它几乎没有任何实际的用处——它只能匹配a@b.c形式的电子邮件地址(虽然在语法方面没有任何问题,但这显然不是一个合法的地址)。不匹配零个字符的情况)。简单地在http的后面加上一个s*(s的零次或多次重复)并不能真正解决这个问题,因为那会使得httpsssss://(如此开头的URL地址显然是不合法的)也被认为是一个合法的匹配。答案是使用这些元字符的“懒惰型”版本(“懒惰”在这里的含义是匹配尽可能少的字符——与“贪婪型”元字符的行为模式刚好相反)。原创 2026-08-04 21:35:23 · 12 阅读 · 0 评论 -
正则表达式——使用元字符
因为[和]在正则表达式里是用来定义一个字符集合(而不是[和]本身)的元字符,所以,myArray[0]将匹配myArray后面跟着一个该集合成员的情况,而那个集合只有一个成员0。到目前为止,你已经见过如何匹配特定的字符、如何匹配任意单个字符(用.)、如何匹配多个字符中的某一个(用[和])以及如何进行取非匹配(用^)。\匹配\,总共找到了4个匹配。在前一章里使用的模式是重复写出的6个[0-9A-Fz-f]字符集合,把那6个[0-9A-Fz-f]全部替换为[[:xdigit:]]就得到这里的模式。原创 2026-08-04 17:43:49 · 14 阅读 · 0 评论 -
正则表达式——匹配一组字符
在使用[和]定义的字符集合里,这两个元字符之间的所有字符都是该集合的组成部分,字符集合的匹配结果是能够与该集合里的任意一个成员相匹配的文本。在这个例子里,我们改用了另外一个模式,这个模式的匹配对象是:第1个字符必须是n或s,第2个字符必须是a,第3个字符可以是任何一个数字(因为我们使用了字符集合[0123456789])。换句话说,除了那个字符集合里的字符,其他字符都可以匹配。并不是最正确的答案。的效果将作用于给定字符集合里的所有字符或字符区间,而不是仅限于紧跟在^字符后面的那一个字符或字符区间。原创 2026-08-04 16:11:44 · 44 阅读 · 0 评论 -
正则表达式——匹配单个字符
在上面的例子里,我们使用的正则表达式并不能匹配整个文件名,它只匹配了文件名的一部分。当然,像这样使用正则表达式是一种浪费,但把它作为我们学习正则表达式的起点还是很不错的。绝大多数正则表达式的实现都提供了一种能够把所有的匹配结果全部找出来的机制(通常返回为一个数组或是其他的专用格式)。前面见到的正则表达式都是些静态的纯文本,它们根本体现不出正则表达式的威力。我们再来看一个使用了相同原始文本的例子:把以na(表示北美)或sa(表示南美)开头的文件(不管它们后面跟着一个什么数字)找出来。原创 2026-08-04 14:41:48 · 112 阅读 · 0 评论
分享