regex Inno设置中字符串的正则表达式

m528fe3b  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(144)

在Inno设置工具中(Windows操作系统)

InstallDir: string;

我有一个字符串InstallDir它包含C:\-=[]\.,';
我想设置一个正则表达式模式如下

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

例如:它应该是c:\〈A to Z / a to z〉或number或_等(表示有效路径)。
我在Inno Setup中找不到任何函数,这说明它支持字符串操作的正则表达式。
有人能帮我解决这个问题吗?

czq61nw1

czq61nw11#

不,Inno安装程序不支持正则表达式。
您也许可以为此调用PowerShell,但这有点过头了。
检查不需要正则表达式:

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;

(The代码requires Unicode version of Inno Setup,你应该使用无论如何,它是唯一的版本,截至目前的Inno安装6)。
类似问题:

相关问题