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。这不是我问题的答案。