如何在字符串中捕获子字符串的所有实例-使用正则表达式

时间:2018-09-25 09:17:31

标签: php regex

我想知道如何捕获字符串中特定子字符串的所有实例。我的子字符串可能有3种变化:

  • AA-123BB
  • AA 123BB
  • AA123BB

到目前为止,我构建的正则表达式仅捕获一个实例。我尝试了许多组合,但仍然没有成功。 这是我的正则表达式: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。

0 个答案:

没有答案