1:用正则表达式判断ip地址合法
uses
SysUtils, RegularExpressions;
function IsValidIPv4(const IP: string): Boolean;
var
Regex: TRegEx;
begin
// IPv4 地址的正则表达式
Regex := TRegEx.Create('^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$');
Result := Regex.IsMatch(IP);
end;
procedure Test;
var
IP: string;
begin
IP := '192.168.1.1';
if IsValidIPv4(IP) then
WriteLn(IP + ' 是一个合法的 IPv4 地址')
else
WriteLn(IP + ' 不是一个合法的 IPv4 地址');
end;
begin
Test;
end.
代码解释
正则表达式 ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ 用于匹配 IPv4 地址。
它确保每个段(用点分隔)在 0 到 255 的范围内。
IsValidIPv4 函数:
接受一个字符串参数,检查该字符串是否符合 IPv4 地址的格式。
返回一个布尔值,指示该地址是否合法。
Test 过程:
测试 IsValidIPv4 函数,打印结果。
IPv6 地址合法性
如果您还需要检查 IPv6 地址的合法性,可以使用类似的方法,但正则表达式会更复杂。以下是一个简单的示例:
function IsValidIPv6(const IP: string): Boolean;
var
Regex: TRegEx;
begin
// IPv6 地址的正则表达式
Regex := TRegEx.Create('^(([0-9a-fA-F]{1,4}