正则表达式 .怎么排除字符

2017-03-11 15:17:32 +08:00
 cstome

之前没有系统的学正则表达式,今天忽然要用到,随便学了一下。

例如要匹配 ab 开头, cd 结尾的内容,我的写法是

ab.+cd

但由于.一直匹配到换行符,所以要怎样才能在 cd 前停下来?

或者有别的办法?

1934 次点击
所在节点    正则表达式
7 条回复
phpinfo
2017-03-11 15:24:06 +08:00
. 默认是不匹配换行符的, 你肯定是弄错了
ethanlu
2017-03-11 15:24:57 +08:00
前面加^后面加$就好
vmebeh
2017-03-11 15:35:44 +08:00
(ab.+?cd)
DiamondbacK
2017-03-11 15:56:55 +08:00
正则引擎通常有模式开关,用来控制 '.' 是否匹配换行符,不同的引擎语法不一样,去读你用的引擎的文档。
不考虑开关的情况下,可以尝试 `ab[^\n]+cd`.
SoloCompany
2017-03-11 16:48:27 +08:00
greedy match
vs
non-greedy match
lmusicwq
2017-03-11 19:29:10 +08:00
3 和 5 楼说的,默认是贪婪匹配的,加? 就可以了。
yuedingwangji
2017-03-11 23:53:29 +08:00
^ab.*cd$ 这就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/346674

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX