Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取字符的子字符串,直到第一次出现点或破折号_Php_Regex_String - Fatal编程技术网

Php 获取字符的子字符串,直到第一次出现点或破折号

Php 获取字符的子字符串,直到第一次出现点或破折号,php,regex,string,Php,Regex,String,如何指定要返回包含从字符串开头到第一个点或破折号(但不包括第一个点或破折号)的所有字符的子字符串 例如,如果原始字符串为: 'abcdefg.hij-k' 'abcdefg.hi-j.k.l.mn-op' 或者如果原始字符串为: 'abcdefg.hij-k' 'abcdefg.hi-j.k.l.mn-op' 然后是相同的子字符串: 'abcdefg' 应该归还 这里的关键是可能有多个点和破折号随机出现,我们只对第一个字符块感兴趣 编辑: 点或破折号可能首先出现。您可以使用preg\u

如何指定要返回包含从字符串开头到第一个点或破折号(但不包括第一个点或破折号)的所有字符的子字符串

例如,如果原始字符串为:

'abcdefg.hij-k'
'abcdefg.hi-j.k.l.mn-op'
或者如果原始字符串为:

'abcdefg.hij-k'
'abcdefg.hi-j.k.l.mn-op'
然后是相同的子字符串:

'abcdefg'
应该归还

这里的关键是可能有多个点和破折号随机出现,我们只对第一个字符块感兴趣

编辑:
点或破折号可能首先出现。

您可以使用preg\u split:

$res = preg_split('/[-.]/', $string);
所需字符串位于
$res[0]

或预匹配:

preg_match('/^([^-.]+)/', $string, $matches);
结果是,
$match[1]
尝试使用


第一个应该是
$final[0]

我可以解释一下投票失败的原因吗?对不起。收回了否决票。没有看到原始版本中没有的或部分。-没有提到的副本。重复问题的答案是使用explode。这不是我问题的答案。