gpt4 book ai didi

php - 正则表达式 : get what is outside of the brackets

转载 作者:行者123 更新时间:2023-12-02 07:13:08 25 4
gpt4 key购买 nike

我正在使用 PHP,我有这样的文字:

first [abc] middle [xyz] last

我需要了解括号内外的内容。在 StackOverflow 中搜索我找到了一个模式来获取里面的内容:
preg_match_all('/\[.*?\]/', $m, $s)

现在我想知道获取外部内容的模式。

问候!

最佳答案

您可以使用 preg_split 为此:

$input ='first [abc] middle [xyz] last';
$arr = preg_split('/\[.*?\]/',$input);
print_r($arr);

输出:
Array
(
[0] => first
[1] => middle
[2] => last
)

这允许输出中有一些周围的空间。如果你不想要它们,你可以使用:
$arr = preg_split('/\s*\[.*?\]\s*/',$input);
preg_split根据模式拆分字符串。这里的模式是 [后跟任何内容 ] .匹配任何东西的正则表达式是 .* .还有 []是用于 char 类的正则表达式元字符。因为我们想从字面上匹配它们,所以我们需要对它们进行转义以获得 \[.*\] . .*默认情况下是贪婪的,并会尝试尽可能多地匹配。在这种情况下,它将匹配 abc] middle [xyz .为了避免这种情况,我们通过在它后面附加一个 ? 来使它变得不贪婪。给 \[.*?\] .由于我们对这里的任何定义实际上意味着除 ] 之外的任何其他内容。我们也可以使用 \[[^]]*?\]
编辑:

如果要提取 []内外的词, 您可以使用:
$arr = preg_split('/\[|\]/',$input);

[ 上拆分字符串或 ]

关于php - 正则表达式 : get what is outside of the brackets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3721173/

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