虽然这里有几个正则表达式的例子显示了许多变化,简单地说,我只是想在Perl中使用正则表达式搜索2个不同的字符串,一个字符串作为下划线(_),另一个字符串作为正斜杠(/),并将每个字符串替换为连字符(-)加字符串。我使用的是分隔符反斜杠,但它是不正确的输出。
Input: Output:
_APPLE -APPLE
/APPLE -APPLE
下面是我的代码:
$string1 =~ s/\_\/APPLE/-APPLE
$string2 =~ s/\/\/APPLE/-APPLE
1条答案
按热度按时间e7arh2l61#
该代码有一个额外的(转义的)
/
,并将匹配带有_/
的字符串(在第二种情况下是//
)。这不在您的数据中,数据只有_
或/
,而不是两者都有。此外,如果
_
不是分隔符,则不需要转义_
,也不需要转义/
。要匹配几个字符中的任何一个,最干净和最有效的是 character class
这里也可以使用 * 交替 *
但是当匹配的可能性具有更多的字符(
word|another
)时,这里有很多假设,考虑到问题中指定的很少。例如,
\w
也匹配数字,_
沿着字母。如果你澄清了要求,我会根据需要进行编辑。我假设缺少的结束分隔符(编译代码所需的)是发布中的一个打字错误。