我有这个正则表达式:!^>{1} (.*)$!m
但我只想匹配第二行:
>> text1
> text2
> text3
但由于m
,第3行也匹配在这里。当我删除标记m
时,它只会查看字符串的开头,而不是行的开头。 $
似乎什么都不做。
答案 0 :(得分:1)
正如@Shafizadeh所说,只需删除g
标志即可。这将使它在第一场比赛后返回,而不是找到所有比赛。
只是对原因的解释:当您有多行标记^
和&
匹配LINE的开头和结尾时,但当您删除多行标记^
和{{ 1}}匹配STRING的开头和结尾。
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为你可以使用preg_match()
preg_match()返回模式匹配的次数。这将是0次(不匹配)或1次,因为preg_match()将在第一次匹配后停止搜索。相反,preg_match_all()将一直持续到主题结束。如果发生错误,preg_match()将返回FALSE。
preg_match()的第三个参数,如果给出,将用数组内的匹配填充
的答案