Php 将alt属性的引号替换为双引号
什么reg表达式可以用单引号替换这个错误的alt alt='something's face'和这个alt='something's face' 请帮忙 PS我有许多网页的html内容与这样错误的alts在图像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”这里的问题是,除了分
所以我需要更换所有替补。有些替补有引号(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内容哦,那么在保存时,你必须这样做。但无论如何,你都会得到一些解决方案。请留在这里查看来源: