我在下面的表达式中使用了这个
s/^'|'$//
我期待以下结果
'value'
-> value
(不带单引号)
但在我的表达式中,结果表示为value'
它仅删除第一次出现。
我该如何解决?
答案 0 :(得分:3)
正如@WiktorStribiżew和@lurker所评论的那样,如果没有/g
修饰符,s///
运算符将仅对它匹配的第一个(从左到右)事件进行操作。有关更多信息,请参见perlretut。
作为替代方案,将其作为两个正则表达式运行可能会更简单(通常在trim
实现中进行此操作):
do { s/^'//; s/'$// } for $val;