私はこの表現に問題があります:
preg_match('#<file(.*)source-language="(.){2}"(.*)>#Ui', $xliff, $matches);
'en'を削除しようとしています(正確に2つのaz文字が存在する可能性があります):
<file src="index.php" source-language="en" date="2012-10-10">
私はこの表現に問題があります:
preg_match('#<file(.*)source-language="(.){2}"(.*)>#Ui', $xliff, $matches);
'en'を削除しようとしています(正確に2つのaz文字が存在する可能性があります):
<file src="index.php" source-language="en" date="2012-10-10">
キャプチャセクションの外に数量詞があります。両方がキャプチャされるように、{2}を()内に移動する必要があります。
'#<file(.*)source-language="(.{2})"(.*)>#Ui'
preg_match('#<file(.*)source-language="(..)"(.*)>#Ui', $xliff, $matches);
これがちょうど2文字になることがわかっている場合、これはより簡単な方法だと思います。それ以上になる可能性があるので、注意してください。
{2}
がキャプチャの外にあったため、以前は両方のキャラクターをキャプチャしていませんでした。
正規表現を使用してHTMLを解析することは悪い考えです。代わりに、ドキュメントオブジェクトモデルを試してください。