preg_replace从Alpha字符中删除虚线(保留在数字之间)

时间:2014-03-15 16:41:32

标签: php regex preg-replace

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

2 个答案:

答案 0 :(得分:1)

您可以使用标头:

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

答案 1 :(得分:1)

如果您对Letter-Letter感兴趣,这可能会起作用 如果您使用[a-zA-z]\pL以外的任何内容,则会删除
字母,标点符号,空格,控制字符或任何组合等之间的短划线......

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