任何人都可以指导我朝正确的方向发展......
我有一些文件夹符号,我想检查尾随/斜杠,一些文件夹没有尾随/如果它没有尾随 /我需要添加一个
如果我使用此正则表达式,它可以工作,但它会替换文件夹名称的最后一个字符
Folder/name/test folder/name/test1/ folder/name/test2/
replace(/.$/ig,"/");
此正则表达式替换Folder/name/tes[t]/
但会取出t
并将其替换为/
希望这是有道理的......
答案 0 :(得分:6)
尝试这样的事情:
replace(/[^/]$/ig, "$0/")
答案 1 :(得分:3)
replace(/(.)$/ig,"\1/");
或更好
replace(/([^\\])$/ig,"\1/");
如果\ 1不是您的语言的反向引用,那么您必须弄清楚,或告诉我们语言。
答案 2 :(得分:1)
在不知道语言的情况下,很难发布正确的答案,并且您无法使用以剪切和粘贴的方式提供的代码。无论如何,我可能会选择这个正则表达式:
replace(/(.)\/*$/,"\1/");
如果它还没有,则会追加仅/
>>的结尾。
答案 3 :(得分:1)
你制作的正则表达式基本上意味着:取任何字符串中的最后一个字符并用/替换它。您需要做的是将最后一个字符分组,然后在替换中再次插入,如下所示:
replace(/([^\/])$/ig,"$1/");
有关详细信息,请参阅 http://www.regular-expressions.info/brackets.html
答案 4 :(得分:1)
我不确定这是哪种语言,但这是你在Perl中的表现方式:
#! /local/bin/perl
my @data = <data>;
while (<DATA>)
{
s#[^/]\n#/\n#m;
print;
}
__DATA__
/foo/bar/
/baz/jazz
/baz/jazz
然后打印出以下内容:
/foo/bar/
/baz/jaz/
/baz/jazz/
正则表达式的关键是“[^ /] \ n”这基本上匹配换行符旁边的任何内容。根据您的命名法,我会假设语法如下:
replace(/[^\/]\n/ig,"/");
如果没有换行符,请使用此选项:
replace(/[^\/]$/ig,"/");
我希望有所帮助。
答案 5 :(得分:0)
在这种情况下我会避免使用正则表达式并做一些更容易的事情:
$path = rtrim($path, '/').'/';
编辑:
Woops,假设它是php ...