gpt4 book ai didi

php - 如何只匹配出现的第一行?

转载 作者:行者123 更新时间:2023-12-03 07:22:23 25 4
gpt4 key购买 nike

我有这个字符串:

$str = "11ff11
22mm22
33gg33
mm22mm
vv55vv
77ll77
55kk55
kk22kk
bb11bb";

有两种模式:

  1. {两个数字}{两个字母}{两个数字}
  2. {两个字母}{两个数字}{两个字母}

我试图在模式更改时匹配第一行。所以我想匹配这些:

11ff11  -- this
22mm22
33gg33
mm22mm -- this
vv55vv
77ll77 -- this
55kk55
kk22kk -- this
bb11bb

这是我的 current pattern :

/(\d{2}[a-z]{2}\d{2})|([a-z]{2}\d{2}[a-z]{2})/

但它匹配所有行..!如何限制它只匹配相同模式的第一行?

最佳答案

由于空格问题,我无法通过环视来做到这一点。但使用经典的正则表达式它是可用的。它找到重复模式的序列并仅捕获第一个

(?:(\d{2}[a-z]{2}\d{2})\s+)(?:\d{2}[a-z]{2}\d{2}\s+)*|(?:([a-z]{2}\d{2}[a-z]{2})\s+)(?:[a-z]{2}\d{2}[a-z]{2}\s+)*

demo and some explanation

为了理解它是如何工作的,我用数字和字母的模式做了简单的例子:

(?:(\d)\s+)(?:\d\s+)*|(?:(a)\s+)(?:a\s+)*

demo and some explanation

关于php - 如何只匹配出现的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37689762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com