2017-11-13 62 views
2

内の文字列のための正規表現Inno Setupのツール(WindowsのOS)ではInno Setupの

InstallDir: string; 

私は

以下のように正規表現パターンを設定したい C:\-=[]\.,';

を含む文字列InstallDirを持っています

^([a-zA-Z]:)\\([0-9a-zA-Z_\\\s\.\-\(\)]*)$ 

例: A〜Z/a〜z>または数字または_など(有効なパスを意味する)である必要があります。

Inno Setupで、文字列操作の正規表現をサポートする関数が見つかりませんでした。

これを解決するためにどのような体が私を助けることができますか?

答えて

1

いいえ、Inno Setupは正規表現をサポートしていません。

あなたはPowerShellを呼び出すことができるかもしれませんが、それは過剰です。あなたのチェックのための正規表現を必要としない

(あなたがとにかく使用する必要がありますどのようなコード requires Unicode version of Inno Setup、)
function IsPathValid(Path: string): Boolean; 
var 
    I: Integer; 
begin 
    Path := Uppercase(Path); 
    Result := 
    (Length(Path) >= 3) and 
    (Path[1] >= 'A') and (Path[1] <= 'Z') and 
    (Path[2] = ':') and 
    (Path[3] = '\'); 

    if Result then 
    begin 
    for I := 3 to Length(Path) do 
    begin 
     case Path[I] of 
     '0'..'9', 'A'..'Z', '\', ' ', '.', '-', '(', ')': 
      else 
     begin 
      Result := False; 
      Break; 
     end; 
     end; 
    end; 
    end; 
end; 


同様の質問:Basic email validation within Inno Setup script

+0

本当にありがとうございました。私はこれを試み、あなたに知らせるでしょう。 あなたは本当に私を助けました:) – user1239973

+0

はい、本当にうまくいきました。ありがとうございます。 – user1239973

+0

あなたは大歓迎です。 Stack Overflowについては、[答えを受け入れる](// stackoverflow.com/help/someone-answers)(そして/またはあなたが権限を持っていればupvoting)に感謝します。 –