preg_replace除第二个和第三个斜杠之间的数字之外的所有非数字字符

时间:2017-08-05 19:09:21

标签: php regex preg-replace

假设输入字符串/en/614/5d/en/617/19,使用PHP的正则表达式函数我想删除所有非数字(/\D/)字符,但{{1在第二个和第三个斜杠之间或614。 我知道我可以使用split或explode来分割字符串但是我需要一个正则表达式模式来与preg_replace一起使用来仅提取第二个和第三个斜杠之间的数字。 谢谢。

3 个答案:

答案 0 :(得分:1)

preg_replace('/^\/[^\/]+\/|\/.+$/','',$string);

答案 1 :(得分:0)

我仍然会爆炸,但如果你坚持正则表达式:

preg_replace('|^/.*/(\d+)/.*$|','/$1/',$yourString)

括号定义捕获组1,您可以使用“$ 1”在替换中引用它。 '^'是字符串的开头'$'结尾,所以我们捕获所有字符串。

答案 2 :(得分:0)

我认为这应该更好,更简单

preg_replace('/\D/', '', $input_lines); //replace any non digit