嘿伙计们我有字符串:
/new/krymson/
目前我有正则表达式:
/\/new\//
将删除:
/new/
如何将正则表达式包含在删除最后一个/
?
字符串也来自网址,所以可能是:
/new/krymson/admin/interface/modules/
或/new/
之后的任意数量的'密钥'。
提前致谢:)
编辑: 我正在使用PHP。
我知道此正则表达式\/$
会选择字符串中的最后一个/
,但如何选择/new/
和最后/
?
答案 0 :(得分:1)
更新:现在我们知道PHP的另一个解决方案是
$parts = explode("/", $str);
array_shift($parts);
$str = implode("/", $parts);
答案 1 :(得分:0)
/\/new\/(.*)\//1/
.*
在第一场比赛后抓住所有内容
$
右锚定,因此它将获得最后/
您正在使用(。*)...的内容替换字符串...这是依赖于语言的
例如,在Perl中,它将是:
$myString =~ s/\/new\/(.*)\/$\//$1/;
编辑:因为我们现在知道我们在谈论php:
<?php
$string = '/new/krymson/admin/interface/modules/';
$pattern = '/\/new\/(.*)\/$\//';
$replacement = '$1';
$string = preg_replace($pattern, $replacement, $string);
?>
答案 2 :(得分:0)
我决定采取不同的方法,而不是替换我不想要的东西,提取我想要的东西。
我已经完成了这段代码,只是为了其他人阅读这个问题寻求帮助。
$string = '/new/krymson/admin/interface/modules/';
$pattern = ' /(?<=\/new\/).*(?=\b)|(?=\/$)/';
preg_match($pattern, $string, $match);
$shortened = $match[0];
编辑:
感谢所有回复!