preg_match_all能取一块文本,就是多行文本吗?表达式怎么写? 正则表达式修饰符(修正符),取table中的内

preg_match_all 不支持^$表达式。

它总是对行进行匹配,而不是块。

晕。怎么办。

我想取出所有

1<td align="left">ddd</td>

1<td align="left">   
2ddd   
3</td>

表达式如下:
$regt = '/

 1<td[^>]*&gt;(.*)&lt;\/td&gt;/i';   
 2preg_match_all( $regt , $tr , $matches);   
 3  
 4则第二个取不到。   
 5\---------------------------------------------------------------   
 6  
 7  
 8修饰符:   
 9在正则表达式里面的修饰符可以改变正则的很多特性,使得正则表达式更加适合你的需要(注意:修饰符对于大小写是敏感的,这意味着"e"并不等于"E")。正则表达式里面的修饰符如下:   
10i :如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的。   
11m:默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。   
12s:如果在修饰符中加入"s",那么默认的"."代表除了换行符以外的任何字符将会变成任意字符,也就是包括换行符!   
13x:如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。   
14e:本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。   
15A:如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说"/a/A"匹配"abcd"。   
16E:与"m"相反,如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。   
17U:和问号的作用差不多,用于设置"贪婪模式"。   
18  
19\---------------------------------------------------------------   
20  

$s = &lt;&lt;&lt; TEXT
<td>
xx
<a href="xx">xxx</a>
xx
xx
</td> <td>
77889</td> <td>1</td> <td>上海</td>
TEXT;
$p = '#<td.* ```.+?<="" td="">#s';
preg_match_all($p, $s, $r);
print_r($r);
?>
Array
(
[0] => Array
(
[0] =>
xx
xxx
xx
xx

[1] =>77889[2] =>1[3] =>上海)

)</td.*></td[^>

Published At
Categories with Web编程
Tagged with
comments powered by Disqus