使用Preg_match获取2个字符

时间:2012-06-21 16:07:35

标签: php regex preg-match

我遇到这个表达式的问题:

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

我试图让'en'出来(正好有2个a-z字符可以存在):

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

3 个答案:

答案 0 :(得分:3)

你在捕获部分之外有量词。你需要在()中移动{2}以便两者都被捕获。

'#<file(.*)source-language="(.{2})"(.*)>#Ui'

答案 1 :(得分:2)

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

我认为这是一种更简单的方法,如果你知道这将是两个字符。但是,可能会更多,所以要小心。

之前您没有捕获这两个字符,因为{2}在捕获之外。

答案 2 :(得分:0)

使用正则表达式解析HTML是个坏主意。请改为Document Object Model

相关问题