我想替换此模式的所有出现
new Window.MyElement();
跟
document.createElement('my-element');
请注意,MyElement 可以是任何驼峰化元素名称
我需要在我的 shell 中使用什么正则表达式来运行,例如
perl -pi -e '....' my-sourcefile.js
谢谢
perl -i -CSD -pe'
s{new Window.(w+)();}{
"document.createElement(x27".(
$1 =~ s/(p{Lu})/-l$1/gr =~ s/^-//r
)."x27);"
}eg
' my-sourcefile.js
或
perl -i -CSD -MString::CamelCase=decamelize -pe' # Only supports ASCII names
s{new Window.(w+)();}{
"document.createElement(x27".(
decamelize($1) =~ s/_/-/rg
)."x27);"
}eg
' my-sourcefile.js
存在换行符是为了便于阅读,但可以省略它们而不会引起任何问题。