preg_replace从Alpha字符中删除破折号(保留数字之间)


preg_replace Strip Dashes from Alpha Characters (Preserve between Numbers)

如何删除字母之间的所有破折号,但保留数字之间的任何破折号?对不起,我没有任何以前的尝试显示,因为我没有能够找到任何东西,经过一个小时的谷歌搜索。目前我正在使用一个简单的str_replace来删除不需要的字符。

您可以使用查找头:

$str = preg_replace('/(?<='D)-(?='D)/', '', 'abc-xyz-12-45-89');
//=> abcxyz-12-45-89

如果您只是对Letter-Letter感兴趣,这可能有用
如果您使用[a-zA-z]'pL以外的任何内容,则将删除
。字母、标点符号、空格、控制字符或任意组合之间的破折号。

查找:(?i)(?<=[a-z])-(?=[a-z])
替换为空字符串