背景
普通に使ってるけど、自分用にまとめてなかったな、と思い備忘録に
概要
Office Scripts の Regular Expression を利用して、Excel コネクター スクリプトの実行:Run script で呼び出すだけ
正規表現の Office Script
保存場所
OneDrive の以下に自動生成されるので、*.osts ファイルをコピーしてきた場合は、自分でアップロード
Excel で作成する場合は、以下な感じ
今回使ってる正規表現のコードは以下な感じで単純
必要に応じて、MDN を参考に実装すればよいだけ
置換: Replace コード
Replace
function main(
workbook: ExcelScript.Workbook,
originalText: string,
expressionText: string,
replacementText: string
): string {
var expression = new RegExp(expressionText, 'g');
var result = originalText.replace(expression, replacementText);
return result;
}
一致取得: Matches - Extract コード
Extract
function main(
workbook: ExcelScript.Workbook,
originalText: string,
expressionText: string
): string {
// originalText = "'<html><body></body></html>'";
// expressionText = "<body[^>]*>([\\s\\S]*)<\/body>";
// console.log(expressionText);
var expression = new RegExp(expressionText, 'g');
var matches = originalText.match(expression);
// console.log(matches);
var result = matches ? matches[0] : null;
// console.log(result); // log 有効化したままだと、return がオブジェクトになって利用しづらいので最後は排除したほうが良い
return result;
}
部分一致取得: Matches コード
Matches
function main(
workbook: ExcelScript.Workbook,
originalText: string,
expressionText: string
): string {
var expression = new RegExp(expressionText);
var matches = originalText.match(expression);
var result: string = matches? matches[1] ?? "": ""
return result;
}
利用例
事前確認は、mozilla で実施するのが一番簡単かな、と
\w のようにしてエスケープを重ねるのを忘れると、あれ?ってなり勝ち。
\w ⇒ \\w
置換
一致取得
部分一致
あとがき
Power Automate で Web スクレイピングしようとしたら、正規表現は外せないなと思い、準備したところ
keyword
how to use regular expression in power automate