2011-11-24 58 views
0

除了整数,':'(遇到的第一个冒号)之外,我该如何在PHP中编写preg_replace来删除所有内容。preg_replace修剪除整数和:(冒号)

一个例子:

一(1)犬:四(4)猫共享饮料成本核算USD0.40或40美分。

1:4

+1

欢迎来到StackOverflow。我建议你查看[faq]。我们在这里帮助您解决代码中的一些常见问题,而不是为您编写代码。当你发布问题时,通常**是一个好主意,也可以发布**你已经尝试**和**为什么(以及如何)它没有按预期工作** –

+0

我不认为你的例子是有道理的。 – alex

+0

如何处理同一行中的另一个冒号,应如何处理?例如'a1b:2:4c5'替换为'1:2:45'还是替换为'1:245'? – knittl

回答

1

下面是两个例子:

$input = 'one (1) dog : four (4) cat sharing a drink costing USD0.40 or 40 cents.'; 
    $regex = '~.*?(?P<first>\d+).*?:.*?(?P<second>\d+).*~s'; 
    $result = preg_replace($regex, '$1:$2', $input); 

    echo $result; 

    if (preg_match($regex, $input, $matches)) { 
     $result = $matches['first'] .':'. $matches['second']; 
    } 

的preg_replace()和的preg_match()都将最终获得相同的结果。