gpt4 book ai didi

PHP 在一个输入中分隔两个不同的部分

转载 作者:行者123 更新时间:2023-12-04 05:06:07 25 4
gpt4 key购买 nike

我正在开发基于 PHP 的应用程序扩展,它将通过 TVRage API 类扩展启动器样式的应用程序,以将结果返回给用户,无论他们身在何处。这是通过 Alfred App (alfredapp.com) 完成的。

我想添加包含显示名称后跟 S##E## 的功能:
示例:Mike & Molly S01E02

节目名称可以更改,所以我不能就此止步,但我想将 S##E## 与节目名称分开。这将允许我使用该信息通过 API 继续搜索。更好的是,如果有一种方法可以获取数字,并且只有 S 和 E 之间的数字(在示例 01 中)和 E 之后的数字(在示例 02 中),那就完美了。

我在想最好的功能是strpos但仔细观察后,会在字符串中搜索字符串。我相信我需要使用正则表达式来正确地做到这一点。那会让我留下 preg_match .这导致我:

$regex = ?;
preg_match( ,$input);

问题是我只是不太了解正则表达式,无法编写它。什么正则表达式可用于将节目名称与 S##E## 分开或仅获取两个单独的数字?

此外,如果您有一个教授正则表达式的好地方,那就太棒了。

谢谢!

最佳答案

正则表达式:

$text = 'Mike & Molly S01E02';
preg_match("/(.+)(S\d{2}E\d{2})/", $text, $output);
print_r($output);

输出:
Array
(
[0] => Mike & Molly S01E02
[1] => Mike & Molly
[2] => S01E02
)

如果你想分开数字:
$text = 'Mike & Molly S01E02';
preg_match("/(.+)S(\d{2})E(\d{2})/", $text, $output);
print_r($output);

输出:
Array
(
[0] => Mike & Molly S01E02
[1] => Mike & Molly
[2] => 01
[3] => 02
)

说明:

. --> 匹配每个字符

.+ --> 匹配每个字符一次或多次

\d --> 匹配一个数字

\d{2} --> 匹配 2 位数字

括号是对结果进行分组。

www.regular-expressions.info是学习正则表达式的好地方。

关于PHP 在一个输入中分隔两个不同的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15509785/

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