我正在尝试从包含以下行的文件中获取版本信息:
[assembly:AssemblyVersion(“ 1.0.0.1”)]
我需要获取1.0.0.1
我尝试过的功能如下:
preg_match_all('/[assembly: AssemblyVersion("([^,">]+).*?")/')
但是此函数未返回任何匹配项。
在此示例中,获取版本信息的正确方法是什么?
答案 0 :(得分:2)
您当前的代码似乎无法正常工作。从我所看到的主要问题是,您没有转义文字括号和方括号。进行更改后,它似乎可以工作:
$input = "blah blah blah [assembly: AssemblyVersion(\"1.0.0.1\")] blah";
preg_match_all('/\[assembly: AssemblyVersion\("([^,">]+).*?"\)\]/', $input, $array);
print_r($array[1]);
Array
(
[0] => 1.0.0.1
)
答案 1 :(得分:1)
您可以使用此正则表达式:
$line='[assembly: AssemblyVersion("1.0.0.1")]';
preg_match_all("/(?<=\[assembly: AssemblyVersion\(\").*(?=\"\))]/",$line,$matches);
答案 2 :(得分:1)
如果您无需正则表达式就可以解决问题-您必须这样做。因为此功能非常繁琐且不可预测。
例如,只需将字符串用双引号引起来(如果字符串具有严格的格式):
$parts = explode('"', '[assembly: AssemblyVersion("1.0.0.1")]');
echo $parts[1];