トップへ戻る

Autoitプログラミング

StringRegExpReplace - 正規表現

 

正規表現を使用して文字列の置き換えを行います。
StringRegExpReplace("test", "pattern", "replace", [ count ] )

 

通常はStringReplace関数を使用すれば文字列の置き換えができますが、
複雑なパターンで置き換えをしたい場合は、正規表現が必要になります。

 

例1.文字列からIPアドレスのみ取得

 

\\192.168.8.30\log\autoit

 

上記の文字列から正規表現を使ってIPアドレスのみ取得します。

 

Local $Str = '\\192.168.8.30\log\autoit'
Local $Test = StringRegExpReplace($Str, '\\*((?:\d+\.){3}\d+)\\.*', '$1')
MsgBox(0, '置き換え結果', $Test)

 

 

 

実行結果は「192.168.8.30」となります。

 

例2.文字列から任意の文字列のみ取得

 

EPSON LQ680K|Microsoft XPS Document Writer|Fax|Microsoft Office Document Image Writer|Foxit PDF|\\192.168.1.2\hp6L|Canon IP1800|

 

次は上記の文字列から「EPSON LQ680K|Canon IP1800|」のみを取得してみます。

 

Local $Str = 'EPSON LQ680K|Microsoft XPS Document Writer|Fax|Microsoft Office Document Image Writer|Foxit PDF|\\192.168.1.2\hp6L|Canon IP1800|'
Local $Test = StringRegExpReplace($Str, '(?i)[^\|]*?(?:Microsoft|PDF|fax|\\\\)[^\|]*?\|', '')
MsgBox(0, '置き換え結果', $Test)

 

 

 

例3.文字列の入れ替え

 

str(10,9,8,7,6)

 

上記のカッコ内の数字を入れ替えます。

 

Local $Str = 'str(10,9,8,7,6)'
Local $Test = StringRegExpReplace($Str, '(\d+),(\d+),(\d+),(\d+),(\d+)', '$5,$4,$3,$2,$1')
MsgBox(0, '置き換え結果', $Test)

 

 

 

実行結果は「str(6,7,8,9,10)」となります。