之前没有系统的学正则表达式,今天忽然要用到,随便学了一下。
例如要匹配 ab 开头, cd 结尾的内容,我的写法是
ab.+cd
但由于.一直匹配到换行符,所以要怎样才能在 cd 前停下来?
或者有别的办法?
1
phpinfo 2017-03-11 15:24:06 +08:00
. 默认是不匹配换行符的, 你肯定是弄错了
|
2
ethanlu 2017-03-11 15:24:57 +08:00
前面加^后面加$就好
|
3
vmebeh 2017-03-11 15:35:44 +08:00 via iPhone
(ab.+?cd)
|
4
DiamondbacK 2017-03-11 15:56:55 +08:00
正则引擎通常有模式开关,用来控制 '.' 是否匹配换行符,不同的引擎语法不一样,去读你用的引擎的文档。
不考虑开关的情况下,可以尝试 `ab[^\n]+cd`. |
5
SoloCompany 2017-03-11 16:48:27 +08:00
greedy match
vs non-greedy match |
6
lmusicwq 2017-03-11 19:29:10 +08:00
3 和 5 楼说的,默认是贪婪匹配的,加? 就可以了。
|
7
yuedingwangji 2017-03-11 23:53:29 +08:00
^ab.*cd$ 这就行了
|