php正则表达式如何反斜杠

我想制作这个正则表达式并尝试在我的PHP脚本中使用它。 但它只是在我的脚本中的雷鬼建设者工作。 我认为它必须与反斜杠有关,但我确实放置并杀死了很多它们而没有付出一些努力。</ p>

链接到工作正则表达式 </ p>

这是提供的php版本,但它根本不起作用:</ p> \ n

  $ re =“/&lt; * img [^&gt;] * title = * \\ * [\\”\']?([^ \\\  \“\'] *)[^&gt;] * src = * \\ * [\\”\']?  *数据:图像\ / JPEG; BASE64,([^ \\\\ “\'] *)/”;

$ str =“&lt; img style = \”\“title = \”Dies ist der Bild Titel \“src = \”data:image / jpeg; base64,/ 9j / 4AAQ \“&gt; Hier ist Text&lt; img title = \“Hier ist ein anderer \”src = \“data:image / jpeg; base64,/ 9j / 4ABQ \”&gt;“;

npreg_match_all($ re,$ str,$ matches);
</ code> </ pre>

我需要考虑让它起作用吗?</ p>
</ div >

展开原文

原文

I want made this regex and tried to use it within my PHP script. But it is just working in the reggae builder not in my script. I think it have to be something with the backslashes but I really placed and killed a lot of them without some effort.

Link to the working regex

This is the provided php version, but it simply won't work:

$re = "/< *img[^>]*title= *\\\\ *[\\\"\\']?([^\\\\\\\"\\']*)[^>]*src= *\\\\ *[\\\"\\']? *data:image\\/jpeg;base64,([^\\\\\\\"\\']*)/"; 
$str = "<img style=\"\" title=\"Dies ist der Bild Titel\" src=\"data:image/jpeg;base64,/9j/4AAQ\">Hier ist Text<img title=\"Hier ist ein anderer\" src=\"data:image/jpeg;base64,/9j/4ABQ\">"; 

preg_match_all($re, $str, $matches);

What I have to consider making it work?

duanqizao6492
duanqizao6492 在正则表达式中,bacslash是一个检查正则表达式特殊字符的运算符。我建议你查一下regex101.com
5 年多之前 回复

1个回答



使用:</ p>

  $ re =“/&lt; * img [^&gt;  ;] * title = * \ *(?:\“|')?([^ \”'] *)[^&gt;] * src = * \ *(?:\“|')?  *数据:图像\ / JPEG; BASE64,([^ \ “'] *)[^&GT;] /”;

</ code> </ pre>

print_r($ matches)</ code>输出:</ p>

  Array 
(\ n [0] =&gt;数组

[0] =&gt;&lt; img style =“”title =“Dies ist der Bild Titel”src =“data:image / jpeg; base64,/ 9j / 4AAQ “
[1] =&gt;&lt; img title =”Hier ist ein anderer“src =”data:image / jpeg; base64,/ 9j / 4ABQ“

[1] =&gt;数组

[0] =&gt; Dies ist der Bild Titel
[1] =&gt; Hier ist ein anderer

[2] =&gt;数组

[0] =&gt; / 9j / 4AAQ
[1] =&gt; / 9j / 4ABQ


</ code> </ pre>

我使用了更少的转义并更改了 方括号中的引号你已经在 [\\“\']?</ code>上进行了非捕获变更(?:\”|')?</ code>。 </ p>
</ div>

展开原文

原文

Using:

$re = "/< *img[^>]*title= *\\ *(?:\"|')?([^\"']*)[^>]*src= *\\ *(?:\"|')? *data:image\/jpeg;base64,([^\"']*)[^>]/"; 

print_r($matches) outputs:

Array
(
    [0] => Array
        (
            [0] => <img style="" title="Dies ist der Bild Titel" src="data:image/jpeg;base64,/9j/4AAQ"
            [1] => <img title="Hier ist ein anderer" src="data:image/jpeg;base64,/9j/4ABQ"
        )

    [1] => Array
        (
            [0] => Dies ist der Bild Titel
            [1] => Hier ist ein anderer
        )

    [2] => Array
        (
            [0] => /9j/4AAQ
            [1] => /9j/4ABQ
        )

)

I used fewer escapes and changed the quotes in square brackets thing you had goin' on [\\\"\\']? to non-capturing alternations (?:\"|')?.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐