PHP中的复杂正则表达式


Complex Regular Expression in PHP

我有四种类型的字符串,如下所示。区别在于两个数字(23)(15)可能在string中存在,也可能不在string中。

(23) Abc 11 (15) Krtss 14 (25:05 IN 2ND)
Abc 11 (15) Krtss 14 (25:05 IN 2ND)
(23) Abc 11 Krtss 14 (25:05 IN 2ND)
Abc 11 Krtss 14 (25:05 IN 2ND)

文本AbcKrtss可以是任意两个名称。这些名称甚至可以包含空格或连字符。

我需要

:

  1. 从所有4个字符串中提取"Abc"的单个正则表达式。
  2. 从所有4个字符串中提取"Krtss"的第二个正则表达式。

这里AbcKrtss是两个名称,也可以包含空格和连字符。

如果一个单一的正则表达式是不可能的,请给我一个小的PHP代码片段,以获得所需的输出

如果您只是想要一个简单的答案来获取这两个名称,那么执行以下操作:

/.+?('w['w's-]*) 'd+.*? (['w's-]+) 'd+ '(/

请注意,对于第一个名字,我强制它以字母开头,以避免意外地占用第一个带括号的数字(如果它存在)之后的空间。如果没有问题,您可以使parenns中的regex的第一部分与第二部分相同。