teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

例を追加

2017/03/06 05:58

投稿

ideal742
ideal742

スコア8

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,16 @@
2
2
  Perlを使用して文字置き換えを試みています。
3
3
  ですが、正規表現"^ +"がうまく機能せず、
4
4
  処理結果は、元の文字列のままになってしまいます。
5
+ たとえば、
6
+ ```
7
+ ●●●●●●●●
8
+ ●●●●●●●●
9
+ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
10
+ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
11
+ ```
12
+ で、2行目の行頭空白を削除したいということです。
5
13
 
14
+
6
15
  ###該当のソースコード
7
16
  ```アップルスクリプト
8
17
  set aStr to regex_replace("/^ +//m", aStr) of doPerlKit

2

関数の追加

2017/03/06 05:58

投稿

ideal742
ideal742

スコア8

title CHANGED
File without changes
body CHANGED
@@ -6,10 +6,6 @@
6
6
  ###該当のソースコード
7
7
  ```アップルスクリプト
8
8
  set aStr to regex_replace("/^ +//m", aStr) of doPerlKit
9
- ```
10
- また、外部Perlを読み込む方法も試みています。
11
- ```アップルスクリプト
12
- set aStr to do shell script "perl Perlファイルパス " & aStr
13
9
 
14
10
  on regex_replace(regex, target)
15
11
  set command to "$target = q/" & target & "/; $target =~ s" & regex & "; print $target;" --※引数を使用してperlコマンド生成
@@ -30,6 +26,10 @@
30
26
  end try
31
27
  return str_result
32
28
  end exec_perl
29
+ ```
30
+ また、外部Perlを読み込む方法も試みています。
31
+ ```アップルスクリプト
32
+ set aStr to do shell script "perl Perlファイルパス " & aStr
33
33
 
34
34
  ```
35
35
  ```Perl

1

ハンドラの追加

2017/03/06 03:40

投稿

ideal742
ideal742

スコア8

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,27 @@
10
10
  また、外部Perlを読み込む方法も試みています。
11
11
  ```アップルスクリプト
12
12
  set aStr to do shell script "perl Perlファイルパス " & aStr
13
+
14
+ on regex_replace(regex, target)
15
+ set command to "$target = q/" & target & "/; $target =~ s" & regex & "; print $target;" --※引数を使用してperlコマンド生成
16
+ set str_result to exec_perl(command) of me
17
+ return str_result
18
+ end regex_replace
19
+
20
+ on exec_perl(command)
21
+ set one_liner to "perl -e '" & command & "'" as Unicode text
22
+ --log {"one_liner =", one_liner}
23
+ (*one_liner =, perl -e '$target = q/xxxx@ezweb.ne.jp/; $target =~ s/e/A/g; print $target;'*)
24
+ --エラー処理
25
+ try
26
+ set str_result to do shell script one_liner --※shell実行
27
+ --log {"str_result =", str_result}
28
+ on error
29
+ set str_result to "syntax error : " & one_liner --perlがエラーを吐いたとき
30
+ end try
31
+ return str_result
32
+ end exec_perl
33
+
13
34
  ```
14
35
  ```Perl
15
36
  #!/usr/bin/perl