趣味のためのMacに関するサイト > AppleScript > 【正規表現】自分の書いたAppleScriptを見返してみた
AppleScript, 正規表現

【正規表現】自分の書いたAppleScriptを見返してみた

自分が書いたAppleScript(構文の一部をコピーしたので閉じていませんが)が動作がおかしいので

見返してみました。

(空白行が削除されない)

	tell application "Jedit X"
				tell front document
					replaceAll string "^[ \\t]*[\\r\\n]+" to "" with select all, case sensitive, grep and entire word
					replaceAll string "" to "" with select all, case sensitive, grep and entire word --を削除
				end tell
			end tell

 二行ともwith以降は定型文です。

replaceAll以降のところが大事な部分です。

[\\t] → バックスラッシュはWindowsで¥えんまーくと同じで二つ続けたのでは誤動作防止のためです。

tは、タブがアスタリスク*で0回以上の繰り返し。

[\\r\\n]+ → 復帰と改行。直前に置かれている文字の一回以上の繰り返し。

二行目を見ると、””to””と書いてしましましたので、これは余計な文章かもしれません。

自分の正規表現のバイブル「正規表現ケーススタディーブック」を見ると、

「空白文字」は「半角スペース」だけでなく、「改ページ」「改行」「復帰」「タブ」

を含めたものです。それぞれを個別のメタキャラクタで表すこともできます。

とありますので、入れ替えてみます。

空白文字にも小文字、大文字がありますが、物は試しです。

念のため3個以上連続したものを選択します。

[\s]{3,}

ダメでした。元に戻します。

聞くところによると、構文はすっきりときれいに書くのがエラーを防ぐコツだそうです。

この空白行を除く構文は単独で動作させると支障なく空白行を省きます。

短い構文を組み合わせて動かそうとすると誤動作という始末です。

うーん、原因がわかりません。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ページトップに戻る↑                           ページ一番下へ↓

Mac

About 1q3

ツールとしてのMacについてのメリットデメリットなどの事について書いています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です