使用正则表达式替换用引号引起来的字符
如何用 preg_replace
替换引号内的字符?
我需要替换 href=""
中的所有特殊字符。例子:
<a href="ööbik">ööbik</a> should become <a href="oobik">ööbik</a>
How can I replace characters with preg_replace
, that are enclosed in quotes?
I need to replace all special characters, that are in href=""
things. Example:
<a href="ööbik">ööbik</a> should become <a href="oobik">ööbik</a>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要替换“特殊字符”,您需要使用 iconv:
$str = iconv('UTF -8', 'ASCII//TRANSLIT', $str);
至于获取引号之间的值,请参阅其他答案。使用
preg_replace_callback
在匹配上执行上述转换。编辑:用勺子将所有内容放在一起:
此示例假设 PHP 5.3。如果您陷入 PHP 5.2 或更低版本,请使用“create_function”或命名函数。
To replace the "special chars", you need to use iconv:
$str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
As for getting the values in between the quotes, see the other answers. Use
preg_replace_callback
to execute the conversion above on the matches.EDIT: spoon-feeding everything together:
This example assumes PHP 5.3. Use "create_function" or a named function if you are stuck on PHP 5.2 or below.
虽然 Stack Overflow 问题使用正则表达式在 C# 中查找带有转义引号的引号字符串可能会帮助您找到引用的文本,我认为更好的解决方案是通过解析 HTML 字符串并使用其 DOM。
While the Stack Overflow question Finding quoted strings with escaped quotes in C# using a regular expression may help you finding quoted text, I think the better solution is to do this by parsing an HTML string and work with its DOM.