質問編集履歴

3

例を追加

2017/03/06 05:58

投稿

ideal742
ideal742

スコア8

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,24 @@
5
5
  ですが、正規表現"^ +"がうまく機能せず、
6
6
 
7
7
  処理結果は、元の文字列のままになってしまいます。
8
+
9
+ たとえば、
10
+
11
+ ```
12
+
13
+ ●●●●●●●●
14
+
15
+ ●●●●●●●●
16
+
17
+ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
18
+
19
+ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
20
+
21
+ ```
22
+
23
+ で、2行目の行頭空白を削除したいということです。
24
+
25
+
8
26
 
9
27
 
10
28
 

2

関数の追加

2017/03/06 05:58

投稿

ideal742
ideal742

スコア8

test CHANGED
File without changes
test CHANGED
@@ -13,14 +13,6 @@
13
13
  ```アップルスクリプト
14
14
 
15
15
  set aStr to regex_replace("/^ +//m", aStr) of doPerlKit
16
-
17
- ```
18
-
19
- また、外部Perlを読み込む方法も試みています。
20
-
21
- ```アップルスクリプト
22
-
23
- set aStr to do shell script "perl Perlファイルパス " & aStr
24
16
 
25
17
 
26
18
 
@@ -61,6 +53,14 @@
61
53
  return str_result
62
54
 
63
55
  end exec_perl
56
+
57
+ ```
58
+
59
+ また、外部Perlを読み込む方法も試みています。
60
+
61
+ ```アップルスクリプト
62
+
63
+ set aStr to do shell script "perl Perlファイルパス " & aStr
64
64
 
65
65
 
66
66
 

1

ハンドラの追加

2017/03/06 03:40

投稿

ideal742
ideal742

スコア8

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,48 @@
21
21
  ```アップルスクリプト
22
22
 
23
23
  set aStr to do shell script "perl Perlファイルパス " & aStr
24
+
25
+
26
+
27
+ on regex_replace(regex, target)
28
+
29
+ set command to "$target = q/" & target & "/; $target =~ s" & regex & "; print $target;" --※引数を使用してperlコマンド生成
30
+
31
+ set str_result to exec_perl(command) of me
32
+
33
+ return str_result
34
+
35
+ end regex_replace
36
+
37
+
38
+
39
+ on exec_perl(command)
40
+
41
+ set one_liner to "perl -e '" & command & "'" as Unicode text
42
+
43
+ --log {"one_liner =", one_liner}
44
+
45
+ (*one_liner =, perl -e '$target = q/xxxx@ezweb.ne.jp/; $target =~ s/e/A/g; print $target;'*)
46
+
47
+ --エラー処理
48
+
49
+ try
50
+
51
+ set str_result to do shell script one_liner --※shell実行
52
+
53
+ --log {"str_result =", str_result}
54
+
55
+ on error
56
+
57
+ set str_result to "syntax error : " & one_liner --perlがエラーを吐いたとき
58
+
59
+ end try
60
+
61
+ return str_result
62
+
63
+ end exec_perl
64
+
65
+
24
66
 
25
67
  ```
26
68