前提・実現したいこと
HTMLタグを含む1行の長い文字列から、HTMLタグに含まれない二重引用符(ダブルクォーテーション)を全角のダブルクォーテーションに変換したいです。
ちなみに、このテキストはWordPressから吐き出されたものであり、タグの中はまだしも、タグ以外の部分に入るテキスト(二重引用符も含む)にはある程度の自由度があります。
※追記
こちらの文字変換はWordPressでrss用のxmlを吐き出すために行います。ですので使える言語はPHPかWordPressで用意されたメソッド等のみになります。
jsを使用できる場合の変換方法は「yambejp」さんにご回答いただきました。その点でお悩みの方は「yambejp」さんのご回答を参考になさってください。
対象の文字列の例です。
<p class="text">こんにちはは"日本語"<img src="image.jpg" alt="">ですが、ハローは"English"です。</p>
発生している問題・エラーメッセージ
上記の例でいうと「日本語」と「English」を囲む二重引用符のみ全角に置き換えたいのですが解決策がわかりません。
試したこと
正規表現で該当の二重引用符のみ置換するのがスタンダードな方法かと思ったのですが、該当部分のみを抽出する正規表現がわからず…
phpやWordPressのメソッドで良いものがないか探ってみましたが見つからず…
タグを囲む<>
に挟まれた二重引用符のみ別の文字(文中にはいらなそうな文字)に置き換え、文中に残った二重引用符を全角に置き換え、タグ内の別の文字をもとに戻す…という方法も考えたのですが、そもそも<>
に囲まれた二重引用符のみを抽出する方法もわからず…
といった状態です。
補足情報(FW/ツールのバージョンなど)
PHP : 7.4.11
WordPress : 5.5.1

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/25 11:04