我正在尝试更多地了解正则表达式,我一直想知道以下内容:
如何在点字符后插入空格,但仅当点字符未被数字包围时,例如它需要匹配。但不是22.22!
答案 0 :(得分:4)
这是一个很好的 zero-width assertions :
$subject =~
s/(?<=\. # after a dot,
(?! # but not matching
(?<=\d\.) # digit followed by dot before, AND
(?=\d) # digit afterward
)
)/ /x
g;
我认为你会发现这些评论不言自明! :)
答案 1 :(得分:2)
尝试:
echo "22.22"|perl -pe 's{(\D)\.(\D)}{$1. $2}'
22.22
echo "2x.x2"|perl -pe 's{(\D)\.(\D)}{$1. $2}'
2x. x2