欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP正则匹配反斜杠''和美元'$'

程序员文章站 2022-06-01 23:44:45
...
$content = '1111111<td>2222222<\/td>3$';

//' \\\\\/ ' 第1个'\'转义字符串的第2个'\',字符串为'\'
//第3个'\'转义第4个'\',相当于 字符串 '\'
//第5个'\'转义第4个'/',相当于 字符串 '/'
//字符合起来为'\\/' 两个'\\' 正则表达式看做'\'
$pattern = '/<td>([0-9]{7,})<\\\\\/td>\d\\$$/';

上面方法out了,使用\Q \E,具体东西看评论

1.test.php

<?php
 
$content = '1111111<td>2222222<\/td>3$';
 
//'\\\\\/' 第1个'\'转义字符串的第2个'\',字符串为'\' 
//第3个'\'转义第4个'\',相当于字符串'\' 
//第5个'\'转义第4个'/',相当于字符串'/' 
//字符合起来为'\\/' 两个'\\' 正则表达式看做'\' 
$pattern = '/<td>([0-9]{7,})<\\\\\/td>\d\\$$/';
 
$result = preg_match_all($pattern, $content, $match_result);
     
if($result)
    print_r($match_result);
else
    echo("not match");

2.php代码

$content = '1111111<td>2222222<\/td>3$'; 
$pattern = "!<td>(\d{7,})<\Q\/\Etd>\d\Q$\E!"; 
$result = preg_match_all($pattern, $content, $m);     
if($result) 
    print_r($m); 
else
    echo("not match");

3.output.txt

Array
(
    [0] => Array
        (
            [0] => <td>2222222<\/td>3$
        )
 
    [1] => Array
        (
            [0] => 2222222
        )
 
)