我有一个这样的字符串:
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 ... )之前的每个逗号(&)替换为与符号(&)?
发布于 2012-03-13 17:16:09
您可以使用先行断言,如下所示:
s/,(?=[a-z]+)/&/gi您应该根据您的输入将[a-z]+部件替换为更具体的模式。
发布于 2012-03-14 01:07:45
要替换后跟\w+的所有逗号(如您所要求的),我建议
s/,(?=\w)/&/g因为所有逗号后面都跟\w+,所以上面的代码可以简化为
s/,/&/g如果您的实际意图只是替换后面跟着字母的逗号,那么您希望
s/,(?=\pL)/&/ghttps://stackoverflow.com/questions/9681047
复制相似问题