以下は、部分的なテキスト要素を強調するGoogleの例です。これは、要素全体ではない選択されたテキスト(たとえば、文章断片のみが選択されている)に使用されます。私は代替えのアクションを正規表現の置き換えのアクションに置き換える必要があります。 replaceText()
関数では、開始位置と終了位置を整数で指定することはできません(setBold()
関数とは異なります)。Google Appsスクリプトの部分テキスト要素内の正規表現置換
Thisの質問は非常によく似ていますが、私はGoogle Scriptsがいくつかのコマンドを変更したと思いますので、再度投稿する価値はあると思いました。
、Googleの例は次のとおりです。replaceText
メソッドの正規表現の実装は、それが不可能なことで、このような部分的な交換を行うことが可能となるれ、前後参照またはキャプチャグループをサポートしていません
// Bold all selected text.
var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
var elements = selection.getRangeElements();
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
// Only modify elements that can be edited as text; skip images and other non-text elements.
if (element.getElement().editAsText) {
var text = element.getElement().editAsText();
// Bold the selected part of the element, or the full element if it's completely selected.
if (element.isPartial()) {
text.setBold(element.getStartOffset(), element.getEndOffsetInclusive(), true);
} else {
text.setBold(true);
}
}
}
}
これは素晴らしい解決策です。残念ながら、それは私がそれを必要とする(言及されていない)ために失敗します。 'getText'で保存されていないので、' replaceText'関数で見つからないので、選択に改行があると失敗します。だからイライラする! –
最後の 'replaceText'を' text.deleteText(start、finish);に置き換え、 'text.insertText(start、newText);をつけると、あなたの答えは完全に動作します。 –