我正在编写Perl代码以匹配I'd
和can't
等英语收缩
我可以通过将我的代码转换为一个简短的脚本来解决问题,但我想知道这是否可以通过单行解决。
我的示例文字是:
I'd like to match only contractions using a Perl one liner but it's tricky
输出应为:
I'd
it's
我无法在正则表达式中放置一个单引号,因为这会过早地结束perl表达式:
perl -lane 'for (@F) {print if /^[a-zA-z]+'[a-zA-Z]+$/}' file
Illegal variable name.
使用反斜杠转义单引号并不起作用:
perl -lane 'for (@F) {print if /^[a-zA-z]+\'[a-zA-Z]+$/}' file
Illegal variable name.