Php 使用不同格式的preg_replace和regex
我遇到了三种类型的字符串。我的目标是循环浏览所有内容,只需获取Php 使用不同格式的preg_replace和regex,php,regex,preg-replace,Php,Regex,Preg Replace,我遇到了三种类型的字符串。我的目标是循环浏览所有内容,只需获取name page_1.name page_2.name.text page_1.name.something 我唯一能想到的方法是首先删除页面35;,如下所示: $remove_page = preg_replace("/(page_\d+\.)(\w+)/", "$2", $string); 然后移除最后一位,如下所示: $get_name = preg_replace("/(\w+)(\.\w+)/", "$1", $rem
name
page_1.name
page_2.name.text
page_1.name.something
我唯一能想到的方法是首先删除页面35;
,如下所示:
$remove_page = preg_replace("/(page_\d+\.)(\w+)/", "$2", $string);
然后移除最后一位,如下所示:
$get_name = preg_replace("/(\w+)(\.\w+)/", "$1", $remove_page);
有没有更有效的方法?这是可行的,但我觉得我只是稍微掌握了正则表达式的功能。您可以使用这个正则表达式:
preg_match('/(?<=page_\d\.)[^.]+/', $input, $matches);
您可以使用此正则表达式:
preg_match('/(?<=page_\d\.)[^.]+/', $input, $matches);
我在回答中添加了一个解释。即使是
'/page\ud\.\K[^.\n]+/
regex也可以在\K重置报告匹配的起点时工作。任何以前使用的字符都不再包含在最终匹配中
我在回答中添加了一个解释。即使是'/page\ud\.\K[^.\n]+/
正则表达式在\K重置报告匹配的起点时也会起作用。任何以前使用的字符都不再包括在最终匹配中