2011-08-20 155 views
1

您能否解释下面的陈述?我认为它被称为正则表达式,但我真的不确定。这些字符是什么意思?

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

是什么si(.*?)立场?

+0

http://www.regular-expressions.info/ – Mchl

回答

1

这就是所谓的正则表达式 - 简称regular expressions,这是字符串解析,操作和验证标准。看看我链接到的网站上的参考部分,你就可以计算出正则表达式的功能。

4

发现一切<p>之间</p>不区分大小写(i)(所以<P>也将工作),可能跨越多个行(s

4

其实,这就是所谓的regex,短的正则表达式,并具有语法起初看起来并不陌生,但很快就变成了第二性。

si是国旗:s代表“DOTALL”,这使得.(我将在一点解释)比赛每一个字符,包括换行。 i代表“不区分大小写”,这是不言自明的。

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

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

你会发现@ Mchl的link关于正则表达式的一个很好的信息来源。

希望这会有所帮助。

+0

小挑剔 - '?'与贪婪相反。 '?'是懒/非贪心修饰符。 – AgentConundrum