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}不在捕获范围内。

于 2012-06-21T16:10:53.617 回答
0

用正则表达式解析 HTML 是个坏主意。请尝试使用文档对象模型

于 2012-06-21T16:09:41.087 回答