从字符串中分割一个单词并将其保存在变量中

时间:2011-01-18 17:47:50

标签: php regex

我有一个问题。 我有一个字符串,像这样: hello, I am a string, -how are you?-

我想将- -符号中的任何文字放入另一个变量并将其从原始字符串中删除(简而言之:剪切它!)。

我该怎么办?我应该使用preg_matchpreg_split

如果你帮助我,我会感激你的!

3 个答案:

答案 0 :(得分:1)

这实际上是两个独立的操作,但您可以对两个操作使用相同的模式

$str = "hello, I am a string, -how are you?-";
$pattern = "/-(.*?)-/";

if ( preg_match( $pattern, $str, $matches ) )
{
  $matched = $matches[1];
  $str = preg_replace( $pattern, '', $str );

  echo $matched, PHP_EOL, $str;
}

请注意,这假设(因此仅在以下情况下有效)仅{em>一个部分文本由-划分

答案 1 :(得分:0)

使用explode(不需要正则表达式)进行简单的字符串拆分可能会有所帮助:

$s = 'hello, I am a string, -how are you?-';
$parts = explode('-', $s);
print_r($parts);

// Prints:
// Array
// (
//     [0] => hello, I am a string, 
//     [1] => how are you?
//     [2] => 
// )

您还可以使用trim函数删除空格。

答案 2 :(得分:0)

我相信你正在寻找的是:

preg_match("/\-[\d,\w,\s]+-/gi",'blah blah -hello world-',$myvar)

现在您可以使用$myvar。它会返回一系列结果,因此在这种情况下,您可以使用$myvar[0]并返回第一个-hello world-