【问题标题】:Get substring of characters up to the first occurance of dot or dash [duplicate]获取字符的子字符串,直到第一次出现点或破折号[重复]
【发布时间】:2025-12-09 17:15:01
【问题描述】:

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

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

'abcdefg.hij-k'

或者如果原始字符串是:

'abcdefg.hi-j.k.l.mn-op'

然后是相同的子串:

'abcdefg'

应该被退回。

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

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

【问题讨论】:

  • -不是上述的副本
  • 重复问题的答案是使用explode。这不是我问题的答案。

标签: php regex string


【解决方案1】:

你可以使用 preg_split:

$res = preg_split('/[-.]/', $string);

你要的字符串在$res[0]

或 preg_match:

preg_match('/^([^-.]+)/', $string, $matches);

结果在$match[1]

【讨论】:

  • 我可以解释一下否决票吗?
  • 对不起。收回了反对票。没有看到原始版本中没有的 OR 部分。
【解决方案2】:

尝试使用explode function

$final = explode(".", $originalstr);

首先应该是$final[0];

【讨论】:

    最近更新 更多