2013-02-17 31 views
-2

我试图剥离在PHP前导数字到定界符“_” 实例: (左侧输入,右侧期望的输出)修剪从字符串中的前导号码高达定界符

1_abc.jpg -> abc.jpg 
01_abc.jpg -> abc.jpg 
100_abc.jpg -> abc.jpg 
100_12abc.jpg -> 12abc.jpg 
12abc.jpg -> 12abc.jpg 

在此先感谢。正则表达式我真的很糟糕。

+0

http://www.regexr.com会帮助你。 – Achrome 2013-02-17 03:16:12

+0

如果你在regex上真的很糟糕,在请求其他人为你写它们之前你有两个选择:(1)学习如何使用它们或(2)不用正则表达式来解决问题。两者都意味着你可以支持和维护你的代码。 – Johnsyweb 2013-02-17 03:17:09

+0

同样的事情可以通过expload来完成 – 2013-02-17 03:18:11

回答

1

你真的需要正则表达式吗?

$pos = strpos($string, '_'); 

if($pos !== false) 
    $string = substr($string, $pos + 1); 

...或:

$string = preg_replace('/^\d+_/', '', $string); 

^匹配字符串的开始和d+比赛号码)

+0

您的preg_replace将无法用于12abc.jpg - 需要“?”在下划线之后。 – 2013-02-17 03:25:46

+0

阅读问题:'12abc.jpg - > 12abc.jpg' – 2013-02-17 03:30:43

+0

是的,我明白了。你是对的 – 2013-02-17 03:36:09