正则表达式中 .*? 代表什么?这个相信很多学正则的人都想知道详情,下面是我从百度上找到的一些回答,自己整理了一下:
.是除了\n的任意字符
*是取前面字符的0个或者n个
?是取前面字符的0个或者1个;也可以解释为非贪婪模式
这三个组合在一起的含义就是 :0个或者任意个不是\n的任意字符(非贪婪模式,发现一个就立即匹配结束)
他大多用在:.*?a
就是取前面任意长度的字符,到第一个 a 出现,匹配如下q@wer_qwerqweraljlkjlkjlkj,
得到:q@wer_qwerqwera 这部分,如果匹配不到后面的 a 字符,则匹配为空。
补充:在前面文章匹配任意字符前面的内容(中间有空格,有换行,有文字内容)的正则表达式有过关于问号的在正则表达式中的作用的疑问,这里刚好解答了。
标签: 正则表达式