我有一个小问题需要解决。我想删除字符串的一部分或拆分它。
我最终想要做的是分成 2 个变量,其中我有 "One, Two, Three" 和 "1, 2, 3" ,我不确定我是否可以将它分成两个或者我是否必须删除“-”之后的部分首先再做一次以删除“-”之前的位以结束两个变量。不管怎样,我看了看,似乎
preg_split()
或 preg_match()
可能有效,但不知道 preg
模式。
这就是我到目前为止所拥有的:
$string = 'One-1, Two-2, Three-3';
$pattern = '????????????';
preg_match_all($pattern, $string, $matches);
print_r($matches);
编辑:抱歉我的问题措辞错误:
基本上,如果有人可以帮助我使用
preg
模式来拆分值,那么我就有一个一、二、三和 1、2、3 的数组
如果可以的话,我还有一个问题,如果我有这个,preg_match 会如何改变 :
One Object-1, Two Object-2
所以现在我在“-”之前有多个单词要存储在一起,而“1”单独存储?
试试这个:
$string = 'One-1, Two-2, Three-3';
$pattern = '/(?P<first>\w+)-(?P<second>\w+)/';
preg_match_all($pattern, $string, $matches);
print_r($matches['first']);
print_r($matches['second']);
输出:
Array ( [0] => One [1] => Two [2] => Three )
Array ( [0] => 1 [1] => 2 [2] => 3 )
如果你总是有一个“-”,请改用这个:
$string = "One-1";
$args = explode("-", $string);
// $args[0] would have One
// $args[1] would have 1
您可以在此处阅读有关此功能的更多信息:http://php.net/manual/en/function.explode.php
这应该有效:
[^-]+
但是为什么要使用正则表达式呢?你可以简单地通过“-”爆炸