LoginSignup
1
1

PowerAutomate: Office Scripts を使った正規表現。基本は MDN で。

Last updated at Posted at 2022-10-01

背景

普通に使ってるけど、自分用にまとめてなかったな、と思い備忘録に

概要

Office Scripts の Regular Expression を利用して、Excel コネクター スクリプトの実行:Run script で呼び出すだけ

image.png

正規表現の Office Script

保存場所

OneDrive の以下に自動生成されるので、*.osts ファイルをコピーしてきた場合は、自分でアップロード

image.png

Excel で作成する場合は、以下な感じ

image.png

今回使ってる正規表現のコードは以下な感じで単純
必要に応じて、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 で実施するのが一番簡単かな、と

image.png

\w のようにしてエスケープを重ねるのを忘れると、あれ?ってなり勝ち。
\w ⇒ \\w

置換

image.png

一致取得

image.png

部分一致

:construction:

あとがき

Power Automate で Web スクレイピングしようとしたら、正規表現は外せないなと思い、準備したところ

keyword

how to use regular expression in power automate

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1