Regex 使用正则表达式,如何删除一些冒号并用空格替换其他冒号?

Regex 使用正则表达式,如何删除一些冒号并用空格替换其他冒号?,regex,Regex,有必要用空格替换冒号行中的regexp,除非冒号只是删除了第一个和/或最后一个符号 例1 6:206:crmk_П->6 206 例2 :206:->206您不能单独使用单个正则表达式进行条件替换。您需要使用您的语言库。Python示例: s = s.replace(':', ' ').strip() 如果您确实需要通过正则表达式执行,那么可以使用其中两个。例如: s = re.sub(':', ' ', re.sub('^:|:$', '', s)) 在PHP中,您可以执行以下操作: $f

有必要用空格替换冒号行中的regexp,除非冒号只是删除了第一个和/或最后一个符号

例1 6:206:crmk_П->6 206

例2
:206:->206

您不能单独使用单个正则表达式进行条件替换。您需要使用您的语言库。Python示例:

s = s.replace(':', ' ').strip()
如果您确实需要通过正则表达式执行,那么可以使用其中两个。例如:

s = re.sub(':', ' ', re.sub('^:|:$', '', s))
在PHP中,您可以执行以下操作:

$from = array('/^:|:$/','/:/');
$to = array('',' ');
$output = preg_replace($from,$to,$input);

对于这样一项琐碎的任务,几乎没有必要使用正则表达式。首先用空格替换所有冒号,然后修剪生成的字符串以去掉数据前后的空格

PHP语法:

$string = trim(str_replace(':', ' ', $string));

到目前为止有三个很好的答案,但如果由我决定,我会接受这一个。我认为它比其他的更清楚地表达了你的意图,如果你需要,它可以很容易地用空格以外的东西替换冒号。如果输入是abc,你的正则表达式会修剪空格。啊,但我不是想解决OP没有的问题:。据我所知,需要转换的字符串由字母数字字符+冒号组成。问题的措辞表明OP确实希望数据周围的空格被修剪,否则他会对第二个例子中的206感到满意。