gpt4 book ai didi

php - 正则表达式 PHP 试图剖析一个字符串

转载 作者:行者123 更新时间:2023-12-02 06:59:35 25 4
gpt4 key购买 nike

这是我的字符串的一个例子:

$string = 'Vivamus non risus non diam {some-text-here} varius sollicitudin in non dui. Phasellus egestas {some-more-text-here} quis augue eu pharetra. Curabitur rutrum non lectus et aliquam. Fusce quis rutrum magna. Sed at tristique dui, scelerisque tincidunt tortor. Integer a nibh gravida urna pulvinar vehicula. Curabitur ut felis ut mi imperdiet condimentum {and-some-goes-here-too}. Vestibulum sit amet {of-course-here-as-well} diam mi. Quisque diam dui, convallis dapibus suscipit sit amet, auctor in turpis.';

如果您注意到 {these-things-with-text-in-them} 遍布整个 $string。我使用此函数将它们从 $string 中拉出。

preg_match_all('/\{(.*?)\}/', $string, $bracket_data);
print '<pre>'; print_r($bracket_data[1]); print '</pre>';

哪个会吐出这个:

Array
(
[0] => some-text-here
[1] => some-more-text-here
[2] => and-some-goes-here-too
[3] => of-course-here-as-well
)

这很好。我想要的是相同的结果,但是 $string 的部分 not 在括号内,仍然使用 preg_match_all()。所以在这种情况下,以 $string 为例,期望的结果将是:

Array
(
[0] => Vivamus non risus non diam
[1] => varius sollicitudin in non dui. Phasellus egestas
[2] => quis augue eu pharetra. Curabitur rutrum non lectus et aliquam. Fusce quis rutrum magna. Sed at tristique dui, scelerisque tincidunt tortor. Integer a nibh gravida urna pulvinar vehicula. Curabitur ut felis ut mi imperdiet condimentum
[3] => . Vestibulum sit amet
[4] => diam mi. Quisque diam dui, convallis dapibus suscipit sit amet, auctor in turpis.
)

有人对我现有的正则表达式有任何建议或批评吗?

注意:括号内的文字可以任意排列。它们可以在开头、并肩、结尾和任何数量。括号外的文字也一样

最佳答案

使用与 preg_split() 相同的正则表达式.我还在正则表达式周围添加了 \s* 以从匹配项中排除空格。

$arr = preg_split('/\s*\{(.*?)\}\s*/', $string);

输出:

Array
(
[0] => Vivamus non risus non diam
[1] => varius sollicitudin in non dui. Phasellus egestas
[2] => quis augue eu pharetra. Curabitur rutrum non lectus et aliquam. Fusce quis rutrum magna. Sed at tristique dui, scelerisque tincidunt tortor. Integer a nibh gravida urna pulvinar vehicula. Curabitur ut felis ut mi imperdiet condimentum
[3] => . Vestibulum sit amet
[4] => diam mi. Quisque diam dui, convallis dapibus suscipit sit amet, auctor in turpis.
)

Demo

关于php - 正则表达式 PHP 试图剖析一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23582898/

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