正则匹配('(?is)<tr.*?</tr>')

来源:百度知道 编辑:UC知道 时间:2024/05/28 01:09:39
正则匹配('(?is)<tr.*?</tr>')
这个好难懂啊!!!!
下面那位仁兄,说的好,在下实在佩服啊!

楼上的说错了
(?is)是模式修改符。意思是将后面的匹配模式修改成IGNORECASE和SINGLELINE,IGNORECASE就是忽略大小写,SINGLELINE就是规定特殊字符“.” 匹配任意的字符,包括换行符。默认情况下,特殊字符“.”不匹配换行符。

这样的话意思很明白了,就是匹配<tr开头,</tr>结尾,并且前后有两个分号的内容。不区分大小写,且中间允许包括换行符的任意字符。

.*的意思就是任意字符。紧跟在后面的?表示一旦完全匹配碰到后面出现的</tr>字符就中断贪婪匹配过程。

例如可以楼主的表达式可以匹配

'<tr ><td>
<img src="http://www.test.com/1.gif" alt=""/>
</td>
</tr>'

“('(?is)<tr.*?</tr>') ”

匹配“'”一次或多次后寻找“is”再继续寻找<tr后任意字符不包括回车,直到寻找到“</tr>'”

'(?is)
这根本是傻子代码嘛

同意楼上说的
不过,看起来
('(?is)<tr.*?</tr>')
外层的一对括号()和一对''引号应该不是正则的部分.

觉得这个正则是匹配 <TABLE> 中的一行 即是 <TR>.....</TR>