简单的RegEx帮助

时间:2011-03-20 02:24:16

标签: php regex

嘿伙计们我有字符串:

/new/krymson/

目前我有正则表达式:

/\/new\//

将删除:

/new/

如何将正则表达式包含在删除最后一个/

的方法中

字符串也来自网址,所以可能是:

/new/krymson/admin/interface/modules/

/new/之后的任意数量的'密钥'。

提前致谢:)

编辑: 我正在使用PHP。

我知道此正则表达式\/$会选择字符串中的最后一个/,但如何选择/new/和最后/

3 个答案:

答案 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];

编辑:

感谢所有回复!