Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将alt属性的引号替换为双引号_Php_Regex - Fatal编程技术网

Php 将alt属性的引号替换为双引号

Php 将alt属性的引号替换为双引号,php,regex,Php,Regex,什么reg表达式可以用单引号替换这个错误的alt alt='something's face'和这个alt='something's face' 请帮忙 PS我有许多网页的html内容与这样错误的alts在图像 所以我需要更换所有替补。有些替补有引号(alt='something's face'),有些替补没有引号(alt='something's face'),但所有替补都有view alt='something',我需要将它们转换为alt=“something text”这里的问题是,除了分

什么reg表达式可以用单引号替换这个错误的alt alt='something's face'和这个alt='something's face' 请帮忙

PS我有许多网页的html内容与这样错误的alts在图像
所以我需要更换所有替补。有些替补有引号(alt='something's face'),有些替补没有引号(alt='something's face'),但所有替补都有view alt='something',我需要将它们转换为alt=“something text”

这里的问题是,除了分隔符引号外,我们如何区分
某物的脸中使用的
引号

我建议:

alt='(.*?)'\s+

在这里,我以一种惰性的方式匹配属性的内容,直到下一个
后跟至少一个空格。这是假设文本中的
引号后面总是紧跟着一个非空格字符。问题是,如果a
拥有一个复数名词,这将失败。例如:

alt='I was at my parents' house'

但是在这种情况下,我不知道我们应该如何区分引号。

这里的问题是,除了分隔符引号外,我们如何区分某物的脸上使用的
引号

我建议:

alt='(.*?)'\s+

在这里,我以一种惰性的方式匹配属性的内容,直到下一个
后跟至少一个空格。这是假设文本中的
引号后面总是紧跟着一个非空格字符。问题是,如果a
拥有一个复数名词,这将失败。例如:

alt='I was at my parents' house'

但是在这种情况下,我不知道如何区分引号。

对于通用模式(不仅仅是
alt
属性值),您可以使用以下方法:

测试字符串:

<img src='/foto/content/00/01/19/42/prezentatsiya-womens-health.pg'width=300 height=300 alt='На презентации Women's hеаlth' title='Women's hеаlth' data-info='These are the parents' concerns'/>

模式:
~[^=]\K'(?!/>|?[\w-]+=)~

替换:
\\'

说明:

作为记录,与我在父母家时相比,我的模式证明是成功的

目标单引号前面没有
=
,后面没有
/>
或其他属性声明。我已经使属性之间没有间隔成为可能,因为在示例输入中,
width=300
被粉碎到
src
值的后面

\K
仅表示“在此处开始完整字符串匹配”。此技术用于避免使用捕获组,从而提高模式性能


或者,如果您想以相反的方式使用它,您可以将外部单引号转换为双引号——但是您可能需要搜索任何预先存在的双引号


~[\w-]+=\K'|'(?=/>|?[\w-]+=)~

对于通用模式(不仅仅是
alt
属性值),您可以使用以下方法:

测试字符串:

<img src='/foto/content/00/01/19/42/prezentatsiya-womens-health.pg'width=300 height=300 alt='На презентации Women's hеаlth' title='Women's hеаlth' data-info='These are the parents' concerns'/>

模式:
~[^=]\K'(?!/>|?[\w-]+=)~

替换:
\\'

说明:

作为记录,与我在父母家时相比,我的模式证明是成功的

目标单引号前面没有
=
,后面没有
/>
或其他属性声明。我已经使属性之间没有间隔成为可能,因为在示例输入中,
width=300
被粉碎到
src
值的后面

\K
仅表示“在此处开始完整字符串匹配”。此技术用于避免使用捕获组,从而提高模式性能


或者,如果您想以相反的方式使用它,您可以将外部单引号转换为双引号——但是您可能需要搜索任何预先存在的双引号


~[\w-]+=\K'|'(?=/>|?[\w-]+=)~

但是我的数据库中已经有这些页面的html内容哦,那么在保存时,您必须这样做。但是你会得到一些解决方案。留在这里查看源代码:但是我已经在数据库中为这些页面提供了html内容哦,那么在保存时,你必须这样做。但无论如何,你都会得到一些解决方案。请留在这里查看来源: