簡體   English   中英

使用正則表達式替換用引號引起來的字符

[英]Replace characters that are enclosed with quotes using a regular expression

如何用引號內的preg_replace替換字符?

我需要替換所有在href=""特殊字符。 例:

<a href="ööbik">ööbik</a> should become <a href="oobik">ööbik</a>

要替換“特殊字符”,您需要使用iconv$str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);

至於獲取引號之間的值,請參見其他答案。 使用preg_replace_callback對比賽進行上述轉換。

編輯:一起喂所有東西:

<?php
$input = 'ööbik';
$expected = 'ööbik';

// Set the locale of your input here.
setlocale(LC_ALL, 'en_US');

// Convert using a callback.
$output = preg_replace_callback('/href="([^"]+)"/', function ($matches) {
    return iconv('UTF-8', 'ASCII//TRANSLIT', $matches[0]);
}, $input);

echo "Input:    $input\n";
echo "Expected: $expected\n";
echo "Output:   $output\n";

本示例假定PHP 5.3。 如果您使用的是PHP 5.2或更低版本,請使用“ create_function”或命名函數。

盡管Stack Overflow問題使用正則表達式在C#中查找帶轉義引號的帶引號的字符串可能會幫助您找到帶引號的文本,但我認為更好的解決方案是通過解析HTML字符串並使用其DOM來做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM