php在一个精确的单词上爆炸
有可能让php在一个精确的单词上进行爆炸式的工作吗?例如,我希望拆分字符串:php在一个精确的单词上爆炸,php,regex,explode,Php,Regex,Explode,有可能让php在一个精确的单词上进行爆炸式的工作吗?例如,我希望拆分字符串: London Luton to Paris 然而,php explode将在“Luton”中找到第一个出现的“to”。此字符串也可以是: Paris to London Luton 当“to”首先出现时,它将正确地爆炸 理想情况下,我希望explode不区分大小写,我相信explode目前是这样的。然而,我认为正则表达式可能是一种更好的方法。使用preg\u split的简单解决方案: $words = preg_
London Luton to Paris
然而,php explode将在“Luton”中找到第一个出现的“to”。此字符串也可以是:
Paris to London Luton
当“to”首先出现时,它将正确地爆炸
理想情况下,我希望explode不区分大小写,我相信explode目前是这样的。然而,我认为正则表达式可能是一种更好的方法。使用
preg\u split的简单解决方案
:
$words = preg_split("/\bto\b/iu", "London Luton to Paris");
var_dump($words);
// the output:
array (size=2)
0 => string 'London Luton ' (length=13)
1 => string ' Paris' (length=6)
带有
预分割的简单解决方案
:
$words = preg_split("/\bto\b/iu", "London Luton to Paris");
var_dump($words);
// the output:
array (size=2)
0 => string 'London Luton ' (length=13)
1 => string ' Paris' (length=6)
如果要使用
'to'
作为分隔符进行分解,则可以使用字符串'to'
(它是to
,两边各有一个空格)。这样,只有当to
是一个完整的单词时,它才被视为分隔符,较大单词的to
字母组合不匹配
但是,如果您需要它不区分大小写,则regex
可能是更好的解决方案
preg_split('/\bto\b/i', 'London Luton to Paris');
使用到
作为分隔符拆分字符串,但仅当字符串是一个完整的单词时(环绕字符串的\b
仅匹配单词边界)
i
修饰符告诉regex
引擎忽略大小写
to
分隔符附近的空格将以您得到的片段返回。您可以trim()
所有结果字符串
array_map('trim', preg_split('/\bto\b/i', 'Paris to London Luton');
或者您可以将它们添加到正则表达式中:
preg_split('/\s*\bto\b\s*/i', 'Paris to London Luton');
\s*
部分匹配空格字符(\s
)零次或多次(*
)。这样一来,即使单词to
与它周围的空格一起出现在字符串的第一个或最后一个单词中,也会被标识为分隔符。如果要使用'to'
作为分隔符进行分解,则可以使用字符串'to'
(它是to
,两边各有一个空格)。这样,只有当to
是一个完整的单词时,它才被视为分隔符,较大单词的to
字母组合不匹配
但是,如果您需要它不区分大小写,则regex
可能是更好的解决方案
preg_split('/\bto\b/i', 'London Luton to Paris');
使用到
作为分隔符拆分字符串,但仅当字符串是一个完整的单词时(环绕字符串的\b
仅匹配单词边界)
i
修饰符告诉regex
引擎忽略大小写
to
分隔符附近的空格将以您得到的片段返回。您可以trim()
所有结果字符串
array_map('trim', preg_split('/\bto\b/i', 'Paris to London Luton');
或者您可以将它们添加到正则表达式中:
preg_split('/\s*\bto\b\s*/i', 'Paris to London Luton');
\s*
部分匹配空格字符(\s
)零次或多次(*
)。这样一来,即使单词to
与它周围的空格一起出现在字符串的第一个或最后一个单词中,也会被标识为分隔符。“不过,我认为正则表达式可能是更好的方法。”是否有任何东西阻止您在分解函数中包含到之前和之后的空格?比如explode('to',$string)
。即使要添加frz3993注释:您始终可以在“to”之前和之后压缩一个空格,然后在“to”上分解,但如果您希望不区分大小写,最好使用正则表达式。“我认为正则表达式可能是一种更好的方法。”是否有任何东西阻止您在分解函数中包含到之前和之后的空格?比如explode('to',$string)
。即使要添加frz3993注释:你也可以在“to”之前和之后压缩一个空格,然后在“to”上分解,但是如果你想不区分大小写,最好使用正则表达式。只是一种内联修饰符的替代方法:-不过+1:-)@Jan,是的,在更复杂的情况下,内联修饰符可以提供良好的灵活性只是内联修饰符的一种替代方法:-然而+1:-)@Jan,是的,在更复杂的情况下,内联修饰符可以提供良好的灵活性