gpt4 book ai didi

php - 正则表达式 : how to capture the beginning, 一个模式和一行的结尾?

转载 作者:搜寻专家 更新时间:2023-10-31 20:47:36 25 4
gpt4 key购买 nike

这里有一些例子:

  1. 一些文本A
  2. 一些文本 A 8:00-19:00
  3. 8:00-19:00
  4. 一些文本 A 8:00-19:00 一些文本 B

对于上述每种情况,我需要捕获(如果可能):

  • 时间(8:00-19:00)
  • 开头(一些文本A)
  • 结尾(一些文本B)

使用这种模式 #^(.*?) ?(\d{1,2}:\d{2}-\d{1,2}:\d{2})?$#,我可以捕获(来自示例 2):

  • 一些文本A
  • 8:00-19:00

但我无法通过在模式末尾添加 (.*)(.*?) 来捕获该行的其余部分。

你能帮帮我吗?谢谢!

最佳答案

如何使用 preg_split

$tests = array(
'Some text A',
'Some text A 8:00-19:00',
'8:00-19:00',
'Some text A 8:00-19:00 Some text B'
);

foreach ($tests as $test) {
$res = preg_split('/(\d\d?:\d\d-\d\d?:\d\d)/', $test, -1,PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
print_r($res);
}

输出:

Array
(
[0] => Some text A
)
Array
(
[0] => Some text A
[1] => 8:00-19:00
)
Array
(
[0] => 8:00-19:00
)
Array
(
[0] => Some text A
[1] => 8:00-19:00
[2] => Some text B
)

关于php - 正则表达式 : how to capture the beginning, 一个模式和一行的结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11711005/

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