jwqs5533 发表于 2024-1-2 13:13:22

求一段正则,感谢大佬们。


IP=192.168.100.1

求下的IP值,这个正则该怎么写呢?谢谢啦

afan 发表于 2024-1-2 13:18:49

Local $sSource = _
                '' & @CRLF & _
                'IP=192.168.100.1'
$sD = 'DESKTOP-2QIB7QO'
Local $aSRE = StringRegExp($sSource, '(?i)\[' & $sD & '\]\v+\s*IP\h*\=\h*([\d\.]+)', 1)
If Not @Error Then MsgBox(0, '', $aSRE)

jwqs5533 发表于 2024-1-2 13:50:35

本帖最后由 jwqs5533 于 2024-1-2 13:57 编辑

afan 发表于 2024-1-2 13:18

A大是我没说清楚


IP=192.168.100.1

;
IP=192.168.100.1


IP=192.168.100.2


IP=192.168.100.2

是多组检查,检查其中的IP值,包含;的不检查

afan 发表于 2024-1-2 14:05:39

jwqs5533 发表于 2024-1-2 13:50
A大是我没说清楚




改一行 Local $aSRE = StringRegExp($sSource, '(?mi)^\h*\[' & $sD & '\]\v+\s*IP\h*\=\h*([\d\.]+)', 1)

jwqs5533 发表于 2024-1-2 15:08:03

本帖最后由 jwqs5533 于 2024-1-2 15:28 编辑

afan 发表于 2024-1-2 14:05
改一行 Local $aSRE = StringRegExp($sSource, '(?mi)^\h*\[' & $sD & '\]\v+\s*IP\h*\=\h*([\d\.]+)', 1 ...
好用了,谢谢A大,可以让获取到的IP值不限制类型,即使是空值也能获取到吗?比如 IP=

afan 发表于 2024-1-2 15:33:10

jwqs5533 发表于 2024-1-2 15:08
好用了,谢谢A大,可以让获取到的IP值不限制类型,即使是空值也能获取到吗?比如 IP= ...

表达式最后的 + 改为 *
...([\d\.]*)',

jwqs5533 发表于 2024-1-2 16:53:10

afan 发表于 2024-1-2 15:33
表达式最后的 + 改为 *
...([\d\.]*)',

A大又得麻烦你呀,怎么能获取多行的呢:face (37):

IP=192.168.1.100
Gateway=192.168.1.1
SubnetMask=255.255.255.0

这种的。。。。现在这个正则只能获取第一行的,我想每一行都是独立获取的

afan 发表于 2024-1-2 17:10:32


IniReadSection

jwqs5533 发表于 2024-1-2 17:50:46

afan 发表于 2024-1-2 17:10

IniReadSection

就是不想用IniReadSection嘛

afan 发表于 2024-1-2 18:19:17

jwqs5533 发表于 2024-1-2 17:50
就是不想用IniReadSection嘛

你这是不是还撒起娇来了 _ _||
你的数据是标准的ini结构,用ini函数是最简单、方便、快捷的

jwqs5533 发表于 2024-1-3 13:22:24

afan 发表于 2024-1-2 18:19
你这是不是还撒起娇来了 _ _||
你的数据是标准的ini结构,用ini函数是最简单、方便、快捷的 ...

关键是不想用共享或者下载方式去获取INI,在给搞搞嘛A大

holley 发表于 2024-1-3 14:34:21

jwqs5533 发表于 2024-1-2 16:53
A大又得麻烦你呀,怎么能获取多行的呢

IP=192.168.1.100


是这个意思吗?
#include <Array.au3>
#include <String.au3>

; 定义待匹配的文本
Local $sText = "" & @CRLF & _
"IP=192.168.1.100" & @CRLF & _
"Gateway=192.168.1.1" & @CRLF & _
"SubnetMask=255.255.255.0"

; 使用StringRegExp进行匹配
Local $aMatches = StringRegExp($sText, "IP=(\S+)\s+Gateway=(\S+)\s+SubnetMask=(\S+)", 3)

; 确认是否有匹配项
If @error Then
    MsgBox($MB_ICONERROR, "Error", "No matches found.")
Else
    ; 打印结果
    MsgBox($MB_ICONINFORMATION, "Results", "IP: " & $aMatches & @CRLF & _
         "Gateway: " & $aMatches & @CRLF & _
         "SubnetMask: " & $aMatches)
EndIf

hlcheng 发表于 2024-1-5 11:27:34

正好过来,也学一下正则的内容
页: [1]
查看完整版本: 求一段正则,感谢大佬们。