2012-07-09 64 views
1

存在的问题,以取代 'STR1/STR2'是否有可能获得一个正则表达式与 'STR1/STR2,str1-> STR2'

我在这个形式的字符串的负载: -

str1/str2 
str3/str4/str5 

可以有任意数量的段。我愿做一个正则表达式搜索和替换,以获得输出: -

str1/str2 , str1->str2 
str3/str4/str5 , str3->str4->str5 

我的琴弦实际上是在形式[a-z|_]+

我尝试

比赛有: -

((?:(?:[a-z|_])\/?)+) 

替换为: -

$1 , $1 

这几乎是正确的,但我需要做第二次搜索并替换将/的更改为->的。

我可以用一个正则表达式实现吗?还是取决于我正在使用的引擎,它是反向引用功能? (我正在使用aptana中的搜索和替换功能)。

+0

第二次换人做第二次换人有什么不妥吗?有时最简单的解决方案是最好的。为什么你需要这一切都在一个正则表达式? – 2012-07-09 12:24:52

+0

我想我并不真的需要一次通过,我只是想知道是否有办法 - 扩展我的知识...... – rgvcorley 2012-07-09 12:52:26

回答

2

Aptana支持全局修饰符而不是重复组?这在JavaScript中工作:

"str3/str4/str5/str6/str7".replace(/([a-z0-9_|]+)\//g, '$1->'); 
//output: str_3->str_4->str_5->str_6->str_7 

此外,我想你的意思是你的模式也应该允许数字。