我的文字如下:
$text = 'number="1" body="Are you "special" man?" name="man" code="1"
number="2" body="Hi said "HaHaHa""?" name="man" code="2"'
我正在努力,但没有任何成功。我需要在正文部分中将所有"
替换为#
。有人可以帮我吗?
结果应该是:
$text = 'number="1" body="Are you #special# man?" name="man" code="1"
number="2" body="Hi said #HaHaHa#?" name="man" code="2"'
答案 0 :(得分:2)
具有preg_replace
和preg_replace_callback
功能的复杂解决方案:
$text = 'number="1" body="Are you "special" man?" name="man" code="1"
number="2" body="Hi said "HaHaHa""?" name="man" code="2"';
$text = preg_replace_callback('/(body=")(.*)(?=" name)/', function($m) {
return $m[1] . preg_replace('/"+/', '#', $m[2]);
}, $text);
print_r($text);
输出:
number="1" body="Are you #special# man?" name="man" code="1"
number="2" body="Hi said #HaHaHa#?" name="man" code="2"
答案 1 :(得分:1)
我和RomanPerekhrest的路线相同:
preg_match_all('/body="(.*?)" /', $text, $matches);
foreach($matches[1] as $find) {
$text = str_replace($find, str_replace('"', '#', $find), $text);
}
获取所有body="something"
并替换"
内的所有""
。将原始body="something"
替换为新原始文件。