/ / इनो सेटअप में स्ट्रिंग के लिए नियमित अभिव्यक्ति - रेगेक्स, इनो-सेटअप

इनो सेटअप में स्ट्रिंग के लिए नियमित अभिव्यक्ति - रेगेक्स, inno-setup

इनो सेटअप टूल (विंडोज ओएस) में

InstallDir: string;

मेरे पास एक स्ट्रिंग है InstallDir जिसमें है C:-=[].,";

मैं नीचे के रूप में एक नियमित अभिव्यक्ति पैटर्न सेट करना चाहता हूं

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

उदाहरण के लिए: यह होना चाहिए: <A to Z / a to z> or number or _ और इतने पर (मतलब एक वैध पथ)।

मुझे इनो सेटअप में कोई फ़ंक्शन नहीं मिला, जो बताता है कि यह स्ट्रिंग ऑपरेशन के लिए नियमित अभिव्यक्ति का समर्थन करता है।

क्या कोई निकाय इसे सुलझाने में मेरी मदद कर सकता है?

उत्तर:

उत्तर № 1 के लिए 1

नहीं, इनो सेटअप नियमित अभिव्यक्ति का समर्थन नहीं करता है।

हो सकता है कि आप इसके लिए पॉवरशेल का आह्वान करने में सक्षम हों, लेकिन यह एक ओवरकिल है।

आपको अपने चेक के लिए एक नियमित अभिव्यक्ति की आवश्यकता नहीं है:

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;

(कोड इनो सेटअप के यूनिकोड संस्करण की आवश्यकता है, वैसे भी आपको क्या उपयोग करना चाहिए)।


इसी तरह का सवाल: इनो सेटअप स्क्रिप्ट के भीतर मूल ईमेल सत्यापन.