匹配模式并返回我想要的正则表达式和PHP的值

时间:2017-04-27 10:14:34

标签: php regex

我有一个字符串集合。现在我想从可能的Regex或某种方式返回该字符串中的特定值。我不太了解正则表达式如何做这个事情所以请帮助我的家伙。谢谢

以下是字符串示例:

2017-04-20T17:00:19 + 00:00

YT:视频:的 eaLKqoB9Fu0   eaLKqoB9Fu0   UC8butISFwT-Wl7EV0hUK0BQ

可能会有额外的内容,所以我们不得不离开它们。

2017-04-17T17:59:04 + 00:00   2017-04-25T20:06:02 + 00:00

可能会有额外的内容,所以我们不得不离开它们。

YT:视频:的 z_mSgK-6pOQ   z_mSgK-6pOQ   UC8butISFwT-Wl7EV0hUK0BQ

2017-04-18T15:56:51 + 00:00   2017-04-25T19:56:06 + 00:00

可能会有额外的内容,所以我们不得不离开它们。  可能会有额外的内容,所以我们不得不离开它们。

YT:视频:的 0fy9TCcX8Uc   0fy9TCcX8Uc   UC8butISFwT-Wl7EV0hUK0BQ

//可能会有很多这样的内容,所以我们只需要在 yt:video:

之后的ID

我希望将值作为具有该字符串特定值的数组

[eaLKqoB9Fu0,​​z_mSgK-6pOQ,0fy9TCcX8Uc] //等等

我希望你们明白我在寻找什么。

1 个答案:

答案 0 :(得分:1)

Try this code snippet here

正则表达式: /yt:video:\K[^\s]+/

  

1。 /yt:video:\K/此部分将与yt:video:匹配,\K将重置当前匹配。

     

2。 [^\s]+这将匹配所有直到space

PHP代码     

ini_set('display_errors', 1);
$string='2017-04-20T17:00:19+00:00

yt:video:eaLKqoB9Fu0 eaLKqoB9Fu0 UC8butISFwT-Wl7EV0hUK0BQ

there could be extra content so we have to leave them.

2017-04-17T17:59:04+00:00 2017-04-25T20:06:02+00:00

there could be extra content so we have to leave them.

yt:video:z_mSgK-6pOQ z_mSgK-6pOQ UC8butISFwT-Wl7EV0hUK0BQ

2017-04-18T15:56:51+00:00 2017-04-25T19:56:06+00:00

there could be extra content so we have to leave them. there could be extra content so we have to leave them.

yt:video:0fy9TCcX8Uc 0fy9TCcX8Uc UC8butISFwT-Wl7EV0hUK0BQ';

preg_match_all("/yt:video:\K[^\s]+/",$string, $matches);
print_r($matches);

<强>输出:

Array
(
    [0] => Array
        (
            [0] => eaLKqoB9Fu0
            [1] => z_mSgK-6pOQ
            [2] => 0fy9TCcX8Uc
        )

)