我有几千个字符串格式为
"12345This_is_awesome-2014.html"
我需要做的是在第一个数字序列“12345”之后插入正斜杠
我发现了一个正则数字序列,它会在数字序列之后插入正斜杠
preg_replace('/(?<=\d\b)(?!,)/', '/', $string)
但是我需要在第一个数字序列之后插入正斜杠
第一个序列的长度并不总是相同,有时它的前面有一个字符
答案 0 :(得分:7)
答案 1 :(得分:4)
这应该有效
(?<=\d)(?=\D)
示例代码:
$re = "/(?<=\\d)(?=\\D)/";
$str = "12345This_is_awesome-2014.html";
$subst = '/';
$result = preg_replace($re, $subst, $str, 1);
输出:
12345/This_is_awesome-2014.html
模式说明:
(?<= look behind to see if there is:
\d digits (0-9)
) end of look-behind
(?= look ahead to see if there is:
\D non-digits (all but 0-9)
) end of look-ahead
答案 2 :(得分:3)
尝试:
preg_replace("/^\D*\d+/", "$0/", $string);
这将匹配开头的任何非数字,然后匹配目标数字,并在它们后面添加斜杠。它不会进一步影响数字。