我有一个这样的字符串:
my $string = 'Respect,13,201,7,0,0,2,3.70,4,1.01,Responsibility,13,177,29,1,1,2,3.58,4,1.04,Flexibility,13,180,27,0,0,3,3.59,4,1.05,Collaboration,13,194,13,0,0,3,3.65,4,1.04,Reflection,13,187,19,1,0,3,3.62,4,1.05,Commitmentto Learning,13,183,24,0,0,3,3.61,4,1.05,Beliefin Educator Efficacy,13,177,13,0,0,20,3.35,4,1.42,SocialIntelligence,13,184,22,1,0,3,3.61,4,1.05';
我如何编写一个与s///
一起使用的模式,用&符号替换,
(例如\w+
)之前的每个逗号(Responsibility, Flexibility, Collaboration ...
)( &
)'?
答案 0 :(得分:3)
您可以使用前瞻断言,如下所示:
s/,(?=[a-z]+)/&/gi
您应该根据您的输入使用更具体的模式替换[a-z]+
部分。
答案 1 :(得分:2)
要替换所有逗号后跟\w+
(如您所知),我建议
s/,(?=\w)/&/g
由于所有逗号后跟\w+
,因此上述内容可简化为
s/,/&/g
如果您的实际意图是仅替换字母后面的逗号,则需要
s/,(?=\pL)/&/g