本文介绍了PHP Regexp (PCRE) - 查找所有子字符串的集合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下字符串,例如:

I have the following string, for example:

aaXXccYYeeXX_ZZkkYYmmXX_ZZnnXXooYYuuXX_ZZvv

如何找到字符串中的所有 XX.*YY.*ZZ 部分?(可能通过使用 preg_match())

How can I find all XX.*YY.*ZZ parts in the string? (possibly by using preg_match())

  • XX cc YY eeXX_ ZZ
  • XX _ZZkk YY mmXX_ ZZ
  • XX _ZZnnXXoo YY uuXX_ ZZ
  • XX oo YY uuXX_ ZZ
  • XX cc YY eeXX_ ZZ
  • XX _ZZkk YY mmXX_ ZZ
  • XX _ZZnnXXoo YY uuXX_ ZZ
  • XX oo YY uuXX_ ZZ

加上所有更长的匹配,如:

Plus all longer matches, as:

  • XX cc YY eeXX_ZZkkYYmmXX_ZZnnXXooYYuuXX_ ZZ
  • XX cc YY eeXX_ZZkkYYmmXX_ZZnnXXooYYuuXX_ ZZ

推荐答案

感谢大家的帮助.

我的解决方案基于bobbogo"解决方案.谢谢.

My solution based on 'bobbogo' solution. Thank you.

正则表达式:

(?=(XX.*?YY.*?ZZ))(?=(.*ZZ))

结果(来自 RegexBuggy):

1 XXccYYeeXX_ZZ     XXccYYeeXX_ZZkkYYmmXX_ZZnnXXooYYuuXX_ZZ
2 XX_ZZkkYYmmXX_ZZ      XX_ZZkkYYmmXX_ZZnnXXooYYuuXX_ZZ
3 XX_ZZnnXXooYYuuXX_ZZ  XX_ZZnnXXooYYuuXX_ZZ
4 XXooYYuuXX_ZZ     XXooYYuuXX_ZZ

可能它可以更优化吗?我不是正则表达式的专业人士.

Possible it can by more optimized? I am not big professional in regex.

这篇关于PHP Regexp (PCRE) - 查找所有子字符串的集合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 13:09