什么reg表达式可以用单引号替换这个错误的单词alt ='某些' s'用这个alt ="有些东西" s" 请帮忙
PS我有很多页面都有html内容,图像中有这样的错误 所以我需要更换所有的。一些alts引用了它(alt ='某些' s')一些alts没有(alt ='某些面孔'),但所有alts都有视图alt =& #39;什么'我需要将它们转换为alt ="一些文字"
答案 0 :(得分:3)
这里的问题是,除了分隔符引用之外,我们如何告诉'
中使用的something's face
引用。
我建议:
alt='(.*?)'\s+
请参阅demo。
在这里,我以懒惰的方式匹配属性的内容,直到下一个'
后跟至少一个空格。这假设文本中的'
引号将始终直接跟随非空格字符。问题是,这将失败,'s
占有复数名词。例如:
alt='I was at my parents' house'
但在这种情况下,我不知道我们应该如何区分引号。
答案 1 :(得分:1)
对于通用模式(不只是alt
属性值),您可以使用:
Pattern & Replacement Demo Link
测试字符串:
<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-]+=)~
替换:\\'
说明:
为了记录,我的模式证明与alt='I was at my parents' house'
相比是成功的。
定位不在=
之前的单引号,并且后面没有/>
或其他属性声明。我已经使属性之间没有间距,因为在您的示例中,输入width=300
被粉碎到src
值的后面。
\K
只是意味着&#34;在这里开始全字符串匹配&#34;。此技术用于避免使用捕获组,这可以提高模式性能。
或者如果你想以相反的方式工作,你可以将外部单引号转换为双引号 - 但是你可能需要搜索任何预先存在的双引号。
~[\w-]+=\K'|'(?=/>| ?[\w-]+=)~
Demo Link