我想知道如何捕获字符串中特定子字符串的所有实例。我的子字符串可能有3种变化:
到目前为止,我构建的正则表达式仅捕获一个实例。我尝试了许多组合,但仍然没有成功。 这是我的正则表达式:https://regex101.com/r/cXqmcn/2
我的PHP代码在这里:
$x = "klajshf lkjsh allashflkjh BL-345HS sjhg qkjg qwkjh g
qwdewqdwqedwqd BL345HS wqedwqehdljhwqed ZA 456KL
sdcscd";
preg_match('/([A-Z]{2}-?\s?[0-9]{3}[A-Z]{2})+/', $x, $matches);
var_export($matches);
结果是:
array (
0 => 'BL-345HS',
1 => 'BL-345HS',
)
当regex101网站说这话时,我想有些问题:
重复捕获组将仅捕获最后一次迭代。在重复的组周围放置一个捕获组以捕获所有迭代,或者如果您对数据不感兴趣,则使用非捕获组
答案: 啊,抱歉,我的PHP只需要preg_match_all。