我遇到这个表达式的问题:
preg_match('#<file(.*)source-language="(.){2}"(.*)>#Ui', $xliff, $matches);
我试图让'en'出来(正好有2个a-z字符可以存在):
<file src="index.php" source-language="en" date="2012-10-10">
答案 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。