我遇到过三种类型的字符串。我的目标是遍历所有这些并获得name
。
page_1.name
page_2.name.text
page_1.name.something
我能做到这一点的唯一方法是首先删除page_#
以下内容:
$remove_page = preg_replace("/(page_\d+\.)(\w+)/", "$2", $string);
然后删除最后一位:
$get_name = preg_replace("/(\w+)(\.\w+)/", "$1", $remove_page);
有更有效的方法吗?这有效,但我觉得我只是略微掌握了正则表达式的力量。
答案 0 :(得分:0)
您可以使用此正则表达式:
preg_match('/(?<=page_\d\.)[^.]+/', $input, $matches);
(?<=page_\d\.)
是一个值得关注的内容,可以确保我们的匹配符号在<{1}}前面和一个数字。 page_
将匹配一个或多个不是DOT的字符。
否则由DOT分割并取第一个元素:
[^.]+