Google Document は便利ですが、置換の機能に正規表現がありながら、
キャプチャした値を $1
などで置換後に使えません。
Spreadsheet ならばキャプチャした値を、置換後に$1
形式で使えるというのに残念。
「GAS を使ってみればいけるのでは」と思ったのですが、
やはり replaceText
というGASの関数では無理でした。
そこでググってみると、うまいこと JavaScript の replace
関数と組み合わせてキャプチャ可能にしている方がおられたので、
実装してみると、いけました👍
そんなわけで、メモを残します。
function ReplaceWords(){
const docBody = DocumentApp.getActiveDocument().getBody()
const paragraphs = docBody.getParagraphs()
const regExp = '([0-9]{1,2})'//キャプチャ用の任意の正規表現
paragraphs.map(para => {
let text = para.getText()
//GASのreplaceTextの中でreplaceにてキャプチャを使う
para.replaceText(regExp,
text.replace(new RegExp(regExp,'g'), '$1hogehoge'))
})
}
こんな感じです。
これで、無事document上の文字列を、正規表現にて一括置換に成功しました。
便利便利。
参考にしたのはこちら