这些字符是什么意思?

时间:2011-08-20 21:55:12

标签: php regex string

请您解释下面的陈述?我认为它叫做正则表达式,但我真的不确定。

~<p>(.*?)</p>~si

si(.*?)代表什么?

4 个答案:

答案 0 :(得分:4)

查找<p></p>不区分大小写(i)之间的所有内容(因此<P>也会起作用)并且可能跨越多行(s)< / p>

答案 1 :(得分:4)

实际上,它被称为regex,是正则表达式的缩写,并且其语法一开始看起来并不熟悉,但很快就变成了第二本质。

si是标志:s代表“dotall”,这使.(我稍后会解释)匹配每个字符,包括换行。 i代表“不区分大小写”,这是不言自明的。

(.*?)部分说:“匹配任何字符(*)的每0次或更多次重复(.),并使其贪婪懒惰(?)即匹配尽可能少的字符“。

当您针对正则表达式检查字符串时会发生“匹配”。例如,您说<p>something</p> 匹配给定的正则表达式。

你会发现@ Mchl的link是关于正则表达式的重要信息来源。

希望这有帮助。

答案 2 :(得分:1)

它被称为正则表达式 - regular expressions的缩写,它是字符串解析,操作和验证的标准。查看我链接到的网站上的参考部分,您将能够计算出正则表达式的功能。

答案 3 :(得分:0)

这是一个懒惰的正则表达式,基本上它会尽可能地使用该掩码尝试LITTLE(懒惰),而默认情况下它会尝试尽可能多地匹配(贪婪)。

查看此资源以获得更好,更完整的解释:

http://www.regular-expressions.info/repeat.html#greedy