趣味のためのMacに関するサイト > AppleScript > 【正規表現】定義があいまいだったものをチェック
AppleScript, 正規表現

【正規表現】定義があいまいだったものをチェック

以前書いた正規構文の構文がAppleScriptで希望の動作をしないので、Jeditで動作確認をしてみると、

^[ \\t]*[\\r\\n]+→^\s+

としても、空白行が削除されず変化がありませんでした。

短いコードの方がチェックも楽ですから、同じ機能だったらこちらの方がいいかもしれません。

内容は、行の先頭に空白が一回以上連続したものを、完全なカラ””で置き換える。というものです。

そこでせっかく作ったScriptで空白行が削除されないのは残念ですので、ちょっと検討してみました。

コードの可読性がいいように、一つの構文ごとにコメント文で区切ることにしました。

冗長で最初に手間がかかりますが、後で楽です。

正規表現は私にとって悪魔ならぬ魔法の呪文です。

--最初に処理すべきところをコピーしておく。コピー忘れを防ぐために実際には警告ウインドウを表示している。
--────────エラー回避のために最初にJeditを起動
tell application "Jedit X"
	activate
	delay 2.0
end tell
--──────────
------------------起動チェック終了
set paraNum to 0
set danraku to "/Users/操作対象ファイル.txt" as POSIX file
tell application "Finder"
	open danraku
	delay 3.0
	tell document 1
		tell application "System Events"
			--delay 0.5
			keystroke ":" using {control down, shift down} --お決まりの英字入力(ここが;でエラー)
			keystroke ":" using {control down, shift down} --半角になってしまうので二回2013/01/24
			keystroke "v" using {command down, shift down} --スタイルなしペースト
			------------------空白行削除に成功したスクリプト
			tell application "Jedit X"
				tell front document
					--2017/06/16 正規表現を訂正^[ \\t]*[\\r\\n]+→^\s+
					--2017/06/16 カギカッコつけるべきか?
					--2017/06/16 空白行が消えないのでに\\sにカギカッコつけてみる。
					replaceAll string "^\\s+" 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
			------------------空白行削除おわり
			------------------</p>タグを行末に挿入
			keystroke "t" using {shift down, control down} --プレーンテキストに。スタイルなしペーストだからいらないかも。
			keystroke "f" using command down --検索ウインドウを開く
			key code 51 --デリート以前入力してた文字が有るかもしれないので。
			keystroke "$" --行末を指定
			keystroke tab --入力ウインドウの移動
			key code 51 --デリート
			keystroke "</p>" --</p>タグを入れる
			keystroke "w" using command down --検索ウインドウを閉じる
			keystroke "a" using command down --すべてのテキストを選択
			keystroke "r" using {command down, shift down} --置換
			------------------挿入終わり
			------------------<p>タグを行頭へ挿入
			keystroke "f" using command down --再度検索ウインドウを開く
			key code 51 --デリート
			keystroke "^" --行頭
			keystroke tab --入力ウインドウの移動
			key code 51 --デリート
			keystroke "<p>" --<p>タグ >
			keystroke "w" using command down --検索ウインドウを閉じる
			keystroke "a" using command down --すべてのテキストを選択
			keystroke "r" using {command down, shift down} --置換
			------------------挿入終わり
			------------------不要な<p></p>タグを取る。2017/02/10
			keystroke "f" using command down --再度検索ウインドウを開く
			key code 51 --デリート
			keystroke "<p></p>" --いらない部分(半角挟まないとき)
			keystroke tab --入力ウインドウの移動
			key code 51 --デリート
			--keystroke "" --ヌルを入れる。上とおなじく。
			keystroke "w" using command down --検索ウインドウを閉じる
			keystroke "a" using command down --すべてのテキストを選択
			keystroke "r" using {command down, shift down} --置換
			------------------<p></p>タグ取る終わり
 ------------------プレーンテキスト化後に残った<p> </p>タグを削除 
tell application "Jedit X" tell front document replaceAll string "^\\s+" to "" with select all, case sensitive, grep and entire word 
end tell 
end tell 
------------------<p> </p>タグを削除した後の空白行を削除終わり 
delay 0.5 
keystroke "a" using command down 
keystroke "x" using command down 
--テキストをカット 
keystroke "w" using command down --ウインドウを閉じる 
keystroke return --空白で保存 
end tell 
end tell 
end tell  


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

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

スクリーンショット 2017 06 17 18 46 56

About 1q3

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

コメントを残す

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