我有一个问题。
我有一个字符串,像这样:
hello, I am a string, -how are you?-
。
我想将- -
符号中的任何文字放入另一个变量并将其从原始字符串中删除(简而言之:剪切它!)。
我该怎么办?我应该使用preg_match
或preg_split
?
如果你帮助我,我会感激你的!
答案 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-