之前没有系统的学正则表达式,今天忽然要用到,随便学了一下。
例如要配 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$ 这就行了 |