假设我们有这样的文字:
...
settingsA=9, 4.2
settingsB=3, 1.5, 9, 2, 4, 6
settingsC=8, 3, 2.5, 1
...
Run Code Online (Sandbox Code Playgroud)
问题是如何使用单个步骤捕获特定行中的所有数字?
单步意味着:
假设我想要捕获以行开头的所有数字settingsB=.最终结果应如下所示:
3
1.5
9
2
4
6
Run Code Online (Sandbox Code Playgroud)
我失败的尝试:
<?php
$subject =
"settingsA=9, 4.2
settingsB=3, 1.5, 9, 2, 4, 6
settingsC=8, 3, 2.5, 1";
$pattern = '([\d\.]+)(, )?' // FAILED!
$pattern = '(?:settingsB=)(?:([\d\.]+)(?:, )?)' // FAILED!
$pattern = '(?:settingsB=)(?:([\d\.]+)(?:, )?)+' // FAILED!
$pattern = '(?<=^settingsB=|, )([\d+\.]+)' // FAILED!
preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);
if ($matches) {
print_r($matches);
}
?>
Run Code Online (Sandbox Code Playgroud)
更新1: …