我可以知道如何为这种情况编写正则表达式吗?
$aword = abc_def_ghi regexp substitute to abc_def_xxx
$bword = jkl_mno_pqr regexp substitute to jkl_mno_xxx
$cword = abc_def regexp substitute to abc_xxx
深航
答案 0 :(得分:1)
$aword = 'abc_def_ghi';
$aword =~ s/[^_]+$/xxx/; # [^_]+$: to match non-underscore at the end of string.
print $aword # => abc_def_xxx
答案 1 :(得分:0)
s/^[a-z]+(?:_[a-z]+)*_\K[a-z]+\z/xxx/
在仅由两个或更多字母a到z的“单词”组成的字符串中,将最后一个“单词”替换为xxx。
您可以在perlre中了解正则表达式。
^ \z: zero width assertions
[]: character class
+ *: quantifiers
(?: ): extended pattern (clustering)
\K: special escape