1

私はこの表現に問題があります:

preg_match('#<file(.*)source-language="(.){2}"(.*)>#Ui', $xliff, $matches);

'en'を削除しようとしています(正確に2つのaz文字が存在する可能性があります):

<file src="index.php" source-language="en" date="2012-10-10">
4

3 に答える 3

3

キャプチャセクションの外に数量詞があります。両方がキャプチャされるように、{2}を()内に移動する必要があります。

'#<file(.*)source-language="(.{2})"(.*)>#Ui'
于 2012-06-21T16:09:33.480 に答える
2
preg_match('#<file(.*)source-language="(..)"(.*)>#Ui', $xliff, $matches);

これがちょうど2文字になることがわかっている場合、これはより簡単な方法だと思います。それ以上になる可能性があるので、注意してください。

{2}がキャプチャの外にあったため、以前は両方のキャラクターをキャプチャしていませんでした。

于 2012-06-21T16:10:53.617 に答える
0

正規表現を使用してHTMLを解析することは悪い考えです。代わりに、ドキュメントオブジェクトモデルを試してください。

于 2012-06-21T16:09:41.087 に答える