reExecuteリエクスキュート関数

本ページには広告が含まれています。

正規表現 検索を行います。正規表現が書き方がよくわからないという人はAI Programmerというツールを使ってみてください。日本語で指示を書くだけで正規表現を作ってくれます。

構文
  1. Matches = reExecute( str, Pattern, IgnoreCase, Global )
引数
str 必須
正規表現による検索の対象となる文字列
Pattern 必須
正規表現で使用するパターンを設定
IgnoreCase 省略可
大文字・小文字を区別しない場合はTrue、区別する場合はFalse
Global 省略可
文字列全体を検索する場合はTrue、しない場合はFalse
戻り値
正規表現で検索した結果をMatchesコレクションとして返します。

プログラム

UWSC
//////////////////////////////////////////////////
// 【引数】
//   str : 正規表現による検索の対象となる文字列 
//   Pattern : 正規表現で使用するパターンを設定 
//   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
//   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
	DIM re = CREATEOLEOBJ("VBScript.RegExp")
	re.Pattern = Pattern
	re.IgnoreCase = IgnoreCase
	re.Global = Global
	RESULT = re.Execute(str)
FEND

正規表現のメタ文字

文字クラス

メタ文字 意味
. 任意の一文字
[...] 角括弧内のいずれかの文字。-(ハイフン)で範囲を指定
[^...] 角括弧内のいずれかの文字以外。角括弧内すべての文字が否定されます。
[0-9] 数字。[0123456789]と同じ
[A-Z] アルファベット大文字。[ABCDEFGHIJKLMNOPQRSTUVWXYZ]と同じ
[a-z] アルファベット小文字。[abcdefghijklmnopqrstuvwxyz]と同じ
[0-9A-Za-z] 数字・アルファベット。[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]と同じ
[^0-9] 数字以外
[ぁ-ん] ひらがな
[ァ-ヴ] カタカナ
[ ]内でエスケープが必要な文字
-(ハイフン)
ハイフンは文字コードの範囲を示すために使われます。ハイフンを文字として使う場合、\-と記述します。
先頭の^
[^...]で否定の意味になるので、\^とエスケープするか、先頭に置かないようにします。
](角括弧の閉じ)
角括弧の閉じは終了を意味するので、\]とエスケープします。

繰り返し

メタ文字 意味
* 直前の文字を0回以上繰り返し(最長マッチ)
+ 直前の文字を1回以上繰り返し(最長マッチ)
? 直前の文字が0回または1回(最長マッチ)
{n} 直前の文字がn回繰り返し
{n,} 直前の文字がn回以上繰り返し
{n,m} 直前の文字がn回以上m回以下の繰り返し

大文字は小文字の否定。

メタ文字 意味
\d 数字。[0-9]と同じ。
\D 数字以外。[^\d]
\w 英数字とアンダーバー。[0-9A-Za-z_]
\W 英数字とアンダーバー以外。[^\w]
\s 空白。[\f\n\r\t\v]。
\S 空白以外。[^\s]。

メタ文字 意味
^ 行頭
$ 行末
\b 単語の先頭か末尾
\B 単語の先頭か末尾以外

先読み・後読み

先読み・後読みで記述した場合、文字列ではなく位置にマッチします。

例えば都道府県名の一覧から京都を検索した場合、東"京都"にもマッチしてしまいますが、以下のように後読みを使えば東京都を除いた京都のみにマッチさせることができます。

UWSC
(?<!東)京都

以下"pattern"は任意の文字列または正規表現。

メタ文字 意味
(?=pattern) 肯定先読み:"pattern"という文字列にマッチした 直前の位置
(?!pattern) 否定先読み:"pattern"という文字列にマッチしない直前の位置
(?<=pattern) 肯定後読み:"pattern"という文字列にマッチした直後の位置
(?<!pattern) 否定後読み:"pattern"という文字列にマッチしない直後の位置
肯定先読み
UWSC
東京都(?=北区)
北区が後に続く東京都にマッチします。
否定先読み
UWSC
東京都(?!北区)
北区が続かない東京都にマッチします。
肯定後読み
UWSC
(?<=東京都)北区
東京都に続く北区にマッチします。
否定後読み
UWSC
(?<!東京都)北区
東京都に続かない北区にマッチします。

一致リストの取得

指定した範囲の整数

以下は、0〜255の範囲にある整数にマッチする正規表現です。

UWSC
DIM Matches = reExecute(str, "\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b")
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
0〜99の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
100〜199の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
200〜249の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
250〜255の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
0〜99、100〜199、200〜249、または250〜255の数値。

偶数

UWSC
DIM Matches = reExecute(str, "\b\d*[02468]\b")

奇数

UWSC
DIM Matches = reExecute(str, "\b\d*[13579]\b")

URL

UWSC
DIM Matches = reExecute(str, "https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?")

メールアドレス

受信したメールの本文から抽出するときなどに。

UWSC
DIM Matches = reExecute(str, "[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*")

郵便番号

UWSC
DIM Matches = reExecute(str, "\d{3}-\d{4}")
\d{3}-\d{4}
3桁の数字
\d{3}-\d{4}
4桁の数字

日付(Y/M/D形式)

日付の正規表現です。あくまで月が1~12、日が1~31の範囲であることだけを確認しているので、06/31など存在しない日付にもマッチします。

UWSC
DIM Matches = reExecute(str, "[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])")
[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])
4桁以下の数字
[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])
1~12の数字。先頭の0埋めはあってもなくても良い。
[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])
1~31の数字。先頭の0埋めはあってもなくても良い。

日付(YMD形式)

厳密に日付をチェックするには以下を使います。

UWSC
DIM Matches = reExecute(str, "(?!([02468][1235679]|[13579][01345789])000229)(([0-9]{4}(01|03|05|07|08|10|12)(0[1-9]|[12][0-9]|3[01]))|([0-9]{4}(04|06|09|11)(0[1-9]|[12][0-9]|30))|([0-9]{4}02(0[1-9]|1[0-9]|2[0-8]))|([0-9]{2}([02468][048]|[13579][26])0229))")

携帯電話番号(070、080、090から始まる11桁の番号)

070-0・080-0・090-0から始まる番号は存在しないので除外。

UWSC
DIM Matches = reExecute(str, "0[789]0-[1-9]\d{3}-\d{4}")

フリーダイヤル(0120-000-000、0800-000-0000)

UWSC
DIM Matches = reExecute(str, "0(?:120-\d{3}-\d{2}|800-\d{3}-\d{3})0")

IP電話(050から始まる11桁の番号)

UWSC
DIM Matches = reExecute(str, "050-\d{4}-\d{4}")

IPアドレス

IPアドレスは「xxx.xxx.xxx.xxx」形式で表されます。x=0~255の値。

UWSC
DIM Matches = reExecute(str, "(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])")
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
0~99の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
100~199の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
200〜249の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
250〜255の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
250〜255 or 200〜249 or 100〜199 or 0〜99なので0〜255
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
「0〜255.」を3回繰り返し。
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
0〜255の数値

英数字

UWSC
DIM Matches = reExecute(str, "[A-Za-z0-9]+")

一致したリストへのアクセス

UWSC
FOR n = 0 TO Matches.Count - 1
PRINT Matches.Item(n).Value
NEXT

MatchesはCOMコレクション(Countプロパティで要素数を取得でき、Itemメソッドまたはプロパティで単一オブジェクトを取得できるもの)なので、FOR-IN-NEXTでもアクセスできます。

UWSC
FOR Match IN Matches
	PRINT Match.Value
NEXT

プログラム実行例

サービスをすべて取得し、そのサービスをユーザーが開始・停止できるかどうかをブール値で返す

UWSC
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM str = DOSCMD("sc query state=all | findstr /B <#DBL>SERVICE_NAME:<#DBL>")
DIM Matches = reExecute(str, "SERVICE_NAME: (.*?)\r\n")
DIM services[Matches.Count]

FOR n = 0 TO Matches.Count - 1
	DIM service = Matches.Item(n).SubMatches(0)
	services[n] = service + ":" + Shell.CanStartStopService(service)
NEXT

QSORT(services, QSRT_UNICODEA)

FOR service IN services
	PRINT service
NEXT

//////////////////////////////////////////////////
// 【引数】
//   str : 正規表現による検索の対象となる文字列 
//   Pattern : 正規表現で使用するパターンを設定 
//   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
//   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
	DIM re = CREATEOLEOBJ("VBScript.RegExp")
	re.Pattern = Pattern
	re.IgnoreCase = IgnoreCase
	re.Global = Global
	RESULT = re.Execute(str)
FEND
結果
CSV
AarSvc_6b8fd:                               False
AdobeARMservice:                            False
AJRouter:                                   False
ALG:                                        False
ALUpdateService:                            False
AppHostSvc:                                 False
AppIDSvc:                                   False
Appinfo:                                    False
AppReadiness:                               False
AppXSvc:                                    False
aspnet_state:                               False
AudioEndpointBuilder:                       False
Audiosrv:                                   False
autotimesvc:                                False
AxInstSV:                                   False
BcastDVRUserService_6b8fd:                  False
BDESVC:                                     False
BFE:                                        False
BITS:                                       False
BluetoothUserService_6b8fd:                 False
Bonjour Service:                            False
BootRacerServ:                              False
BrokerInfrastructure:                       False
BTAGService:                                False
BthAvctpSvc:                                False
bthserv:                                    False
camsvc:                                     False
CaptureService_6b8fd:                       False
cbdhsvc_6b8fd:                              False
CDPSvc:                                     False
CDPUserSvc_6b8fd:                           False
CertPropSvc:                                False
chromoting:                                 False
CLHNService:                                False
ClipSVC:                                    False
COMSysApp:                                  False
ConsentUxUserSvc_6b8fd:                     False
CoreMessagingRegistrar:                     False
cphs:                                       False
CredentialEnrollmentManagerUserSvc_6b8fd:   False
CryptSvc:                                   False
CypherGuard cguard Service 32bit Edition:   False
CypherGuard cguard Service 64bit Edition:   False
CypherGuard Info Service:                   False
dbupdate:                                   False
dbupdatem:                                  False
DbxSvc:                                     False
DcomLaunch:                                 False
dcsvc:                                      False
defragsvc:                                  False
DeviceAssociationBrokerSvc_6b8fd:           False
DeviceAssociationService:                   False
DeviceInstall:                              False
DevicePickerUserSvc_6b8fd:                  False
DevicesFlowUserSvc_6b8fd:                   False
DevQueryBroker:                             False
Dhcp:                                       False
diagnosticshub.standardcollector.service:   False
diagsvc:                                    False
DiagTrack:                                  False
DispBrokerDesktopSvc:                       False
DisplayEnhancementService:                  False
DmEnrollmentSvc:                            False
dmwappushservice:                           False
Dnscache:                                   False
DoSvc:                                      False
dot3svc:                                    False
DPS:                                        False
DSDFunctionKeyCtlService:                   False
DSDTabletControlService:                    False
DSDWirelessLEDCtlService:                   False
DsmSvc:                                     False
DsSvc:                                      False
DusmSvc:                                    False
dynabookSettingService:                     False
Eaphost:                                    False
edgeupdate:                                 False
edgeupdatem:                                False
EFS:                                        False
embeddedmode:                               False
EntAppSvc:                                  False
EventLog:                                   False
EventSystem:                                False
Everything:                                 False
Fax:                                        False
fdPHost:                                    False
FDResPub:                                   False
fhsvc:                                      False
FolderSize:                                 False
FontCache:                                  False
FontCache3.0.0.0:                           False
FrameServer:                                False
Freemake Improver:                          False
FreemakeVideoCapture:                       False
GoogleChromeElevationService:               False
GoogleIMEJaCacheService:                    False
gpsvc:                                      False
GraphicsPerfSvc:                            False
gupdate:                                    False
gupdatem:                                   False
hidserv:                                    False
HvHost:                                     False
icssvc:                                     False
IDriverT:                                   False
IKEEXT:                                     False
ImeDictUpdateService:                       False
InstallService:                             False
iphlpsvc:                                   False
IpxlatCfgSvc:                               False
KeyIso:                                     False
KtmRm:                                      False
LanmanServer:                               False
LanmanWorkstation:                          False
lfsvc:                                      False
LicenseManager:                             False
LLHDClient:                                 False
LLHDCloader:                                False
lltdsvc:                                    False
lmhosts:                                    False
LMS:                                        False
LSM:                                        False
LxpSvc:                                     False
MapsBroker:                                 False
McpManagementService:                       False
MessagingService_6b8fd:                     False
MicrosoftEdgeElevationService:              False
MixedRealityOpenXRSvc:                      False
MozillaMaintenance:                         False
mpssvc:                                     False
MSDTC:                                      False
MSiSCSI:                                    False
msiserver:                                  False
MSMQ:                                       False
MSSQL$SQLEXPRESS:                           False
MSSQLServerADHelper100:                     False
NaturalAuthentication:                      False
NcaSvc:                                     False
NcbService:                                 False
NcdAutoSetup:                               False
Netlogon:                                   False
Netman:                                     False
NetMsmqActivator:                           False
NetPipeActivator:                           False
netprofm:                                   False
NetSetupSvc:                                False
NetTcpActivator:                            False
NetTcpPortSharing:                          False
NgcCtnrSvc:                                 False
NgcSvc:                                     False
NielsenUpdate:                              True
NlaSvc:                                     False
nsi:                                        False
nurago InstallUpdate:                       False
nurago NetworkMeter:                        False
nurago Reporting Service:                   False
OneSyncSvc_6b8fd:                           False
ose64:                                      False
osppsvc:                                    False
p2pimsvc:                                   False
p2psvc:                                     False
PcaSvc:                                     False
perceptionsimulation:                       False
PerfHost:                                   False
PhoneSvc:                                   False
PimIndexMaintenanceSvc_6b8fd:               False
pla:                                        False
PlugPlay:                                   False
PNRPAutoReg:                                False
PNRPsvc:                                    False
PolicyAgent:                                False
Power:                                      False
PrintNotify:                                False
PrintWorkflowUserSvc_6b8fd:                 False
ProfSvc:                                    False
PushToInstall:                              False
QWAVE:                                      False
RasAuto:                                    False
RasMan:                                     False
RemoteAccess:                               False
RemoteRegistry:                             False
RetailDemo:                                 False
RmSvc:                                      False
RpcEptMapper:                               False
RpcLocator:                                 False
RpcSs:                                      False
SamSs:                                      False
SCardSvr:                                   False
ScDeviceEnum:                               False
Schedule:                                   False
SCPolicySvc:                                False
SDRSVC:                                     False
seclogon:                                   False
SecurityHealthService:                      False
SEMgrSvc:                                   False
SENS:                                       False
SensorDataService:                          False
SensorService:                              False
SensrSvc:                                   False
SessionEnv:                                 False
SgrmBroker:                                 False
SharedAccess:                               False
SharedRealitySvc:                           False
ShellHWDetection:                           False
shpamsvc:                                   False
smphost:                                    False
SmsRouter:                                  False
SNMPTRAP:                                   False
spectrum:                                   False
Spooler:                                    False
sppsvc:                                     False
SQLAgent$SQLEXPRESS:                        False
SQLBrowser:                                 False
SQLWriter:                                  False
SSDPSRV:                                    False
ssh-agent:                                  False
SstpSvc:                                    False
StateRepository:                            False
stisvc:                                     False
StorSvc:                                    False
svsvc:                                      False
swprv:                                      False
SynTPEnhService:                            False
SysMain:                                    False
SystemEventsBroker:                         False
SystemExplorerHelpService:                  False
TabletInputService:                         False
TapiSrv:                                    False
TermService:                                False
Themes:                                     False
TieringEngineService:                       False
TimeBrokerSvc:                              False
TMachInfo:                                  False
TODDSrv:                                    False
TokenBroker:                                False
TosCoSrv:                                   False
TOSHIBA HDD SSD Alert Service:              False
TPCHSrv:                                    False
TrkWks:                                     False
TroubleshootingSvc:                         False
TrustedInstaller:                           False
tzautoupdate:                               False
UdkUserSvc_6b8fd:                           False
uhssvc:                                     False
UmRdpService:                               False
UnistoreSvc_6b8fd:                          False
UNS:                                        False
upnphost:                                   False
UserDataSvc_6b8fd:                          False
UserManager:                                False
UsoSvc:                                     False
VacSvc:                                     False
VaultSvc:                                   False
vds:                                        False
vmicguestinterface:                         False
vmicheartbeat:                              False
vmickvpexchange:                            False
vmicrdv:                                    False
vmicshutdown:                               False
vmictimesync:                               False
vmicvmsession:                              False
vmicvss:                                    False
vncserver:                                  False
VSS:                                        False
VSStandardCollectorService150:              False
W32Time:                                    False
w3logsvc:                                   False
W3SVC:                                      False
WaaSMedicSvc:                               False
WalletService:                              False
WarpJITSvc:                                 False
WAS:                                        False
wbengine:                                   False
WbioSrvc:                                   False
Wcmsvc:                                     False
wcncsvc:                                    False
WdiServiceHost:                             False
WdiSystemHost:                              False
WdNisSvc:                                   False
WebClient:                                  False
Wecsvc:                                     False
WEPHOSTSVC:                                 False
wercplsupport:                              False
WerSvc:                                     False
WFDSConMgrSvc:                              False
WiaRpc:                                     False
WinDefend:                                  False
WinHttpAutoProxySvc:                        False
Winmgmt:                                    False
WinRM:                                      False
wisvc:                                      False
WlanSvc:                                    False
wlidsvc:                                    False
wlpasvc:                                    False
WManSvc:                                    False
wmiApSrv:                                   False
WMPNetworkSvc:                              False
workfolderssvc:                             False
WpcMonSvc:                                  False
WPDBusEnum:                                 False
WpnService:                                 False
WpnUserService_6b8fd:                       False
wscsvc:                                     False
WSearch:                                    False
wuauserv:                                   False
WwanSvc:                                    False
XblAuthManager:                             False
XblGameSave:                                False
XboxGipSvc:                                 False
XboxNetApiSvc:                              False
使用関数

指定期間に受信したメールからURLを抽出(Outlook)

UWSC
HASHTBL url = HASH_SORT

CONST olFolderInbox = 6

DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folder = NameSpace.GetDefaultFolder(olFolderInbox)
DIM Items = Folder.Items

DIM start = "2021/01/01"
DIM end = "2021/01/07"

Items = Items.Restrict("[ReceivedTime] >= '" + start + "' AND [ReceivedTime] <= '" + end + "'")

DIM row = 1

FOR MailItem IN Items
	FUKIDASI(row + "/" + Items.Count)
	DIM Matches = reExecute(MailItem.Body, "https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?")
	FOR Match IN Matches
		url[Match.Value] = url[Match.Value] + 1
	NEXT
	row = row + 1
NEXT

FOR i = 0 TO LENGTH(url) - 1
	FUKIDASI(i + "/" + (LENGTH(url) - 1))
	PRINT url[i, HASH_KEY]
NEXT

//////////////////////////////////////////////////
// 【引数】
//   str : 正規表現による検索の対象となる文字列 
//   Pattern : 正規表現で使用するパターンを設定 
//   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
//   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
	DIM re = CREATEOLEOBJ("VBScript.RegExp")
	re.Pattern = Pattern
	re.IgnoreCase = IgnoreCase
	re.Global = Global
	RESULT = re.Execute(str)
FEND
使用関数
解説

接続中の無線LAN情報を取得

連想配列に代入した後にすべて出力していますが、必要な項目だけ取得する場合はLAN["SSID"]のように指定します。

UWSC
HASHTBL LAN

DIM str = DOSCMD("netsh wlan show interface")
DIM Matches = reExecute(str, "\s*?((?=\S).*?)\s*? : \s*?(.*?)\s*?\n")

FOR i = 0 TO Matches.Count - 1
	WITH Matches.Item(i)
		LAN[.SubMatches(0)] = .SubMatches(1)
	ENDWITH
NEXT

FOR i = 0 TO LENGTH(LAN) - 1
	PRINT LAN[i, HASH_KEY] + "," + LAN[i, HASH_VAL]
NEXT

//////////////////////////////////////////////////
// 【引数】
//   str : 正規表現による検索の対象となる文字列 
//   Pattern : 正規表現で使用するパターンを設定 
//   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
//   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
	DIM re = CREATEOLEOBJ("VBScript.RegExp")
	re.Pattern = Pattern
	re.IgnoreCase = IgnoreCase
	re.Global = Global
	RESULT = re.Execute(str)
FEND
結果
接続時
CSV
名前,                 Wi-Fi
説明,                 Intel(R) WiFi Link 5100 AGN
GUID,                 ********-****-****-****-************
物理アドレス,         **:**:**:**:**:** 
状態,                 接続されました
SSID,                 ************-**
BSSID,                **:**:**:**:**:**
ネットワークの種類,   インフラストラクチャ
無線の種類,           802.11g
認証,                 WPA2-パーソナル
暗号,                 CCMP
接続モード,           プロファイル
チャネル,             6
受信速度 (Mbps),      144
送信速度 (Mbps),      144
シグナル,             99%
プロファイル,         ************-**
未接続時
CSV
名前,           Wi-Fi
説明,           Intel(R) WiFi Link 5100 AGN
GUID,           ********-****-****-****-************
物理アドレス,   **:**:**:**:**:**
状態,           切断されました
無線の状態,     ハードウェア オン
使用関数

設定したことのあるWi-Fi のプロファイル名(SSID)を取得

UWSC
HASHTBL LAN

DIM str = DOSCMD("netsh wlan show profile")
DIM Matches = reExecute(str, "\s*? : (.*?)\n")

DIM array[-1]

FOR i = 0 TO Matches.Count - 1
	arrayPush(array, Matches.Item(i).SubMatches(0))
NEXT

FOR i = 0 TO UBound(array)
	PRINT array[i]
NEXT

//////////////////////////////////////////////////
// 【引数】
//   array : 要素を追加する配列(参照引数) 
//   values : 追加する要素をvalue1から指定 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION arrayPush(var array[], value1 = EMPTY, value2 = EMPTY, value3 = EMPTY, value4 = EMPTY, value5 = EMPTY, value6 = EMPTY, value7 = EMPTY, value8 = EMPTY, value9 = EMPTY, value10 = EMPTY, value11 = EMPTY, value12 = EMPTY, value13 = EMPTY, value14 = EMPTY, value15 = EMPTY, value16 = EMPTY)
    DIM i = 1
    WHILE EVAL("value" + i) <> EMPTY
	  DIM res = RESIZE(array, UBound(array) + 1)
	  array[res] = EVAL("value" + i)
	  i = i + 1
	WEND
	RESULT = LENGTH(array)
FEND

//////////////////////////////////////////////////
// 【引数】
//   str : 正規表現による検索の対象となる文字列 
//   Pattern : 正規表現で使用するパターンを設定 
//   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
//   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
	DIM re = CREATEOLEOBJ("VBScript.RegExp")
	re.Pattern = Pattern
	re.IgnoreCase = IgnoreCase
	re.Global = Global
	RESULT = re.Execute(str)
FEND

//////////////////////////////////////////////////
// 【引数】
//   inputs : 繰り返す文字列 
//   multiplier : inputsを繰り返す回数 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
	DIM res = ""
	FOR n = 1 TO multiplier
		res = res + inputs
	NEXT
	RESULT = res
FEND

//////////////////////////////////////////////////
// 【引数】
//   arrayname : 上限値を求める配列の名前 
//   dimension : 返す次元を示す整数 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION UBound(arrayname[], dimension = 1)
	RESULT = EVAL("RESIZE(arrayname" + strRepeat("[0]", dimension - 1) + ")")
FEND
結果
プレーンテキスト
************-2G
aterm-******-g
Buffalo-G-****
auhome_******
aterm-******-g
FON_FREE_INTERNET
使用関数

接続したことあるWi-FiのSSIDとパスワードを取得

UWSC
DIM str = DOSCMD("netsh wlan show networks")
DIM Matches_SSID = reExecute(str, "SSID \d+ : (.*?)\r\n")

FOR n = 0 TO Matches_SSID.Count - 1
	DIM SSID = Matches_SSID.Item(n).SubMatches(0)
	str = DOSCMD("netsh wlan show profiles name=" + SSID + " key=clear")
	PRINT "SSID<#TAB><#TAB>" + SSID
	Matches_Pass = reExecute(str, "主要なコンテンツ       : (.*?)\r\n")
	IFB Matches_Pass.Count <> 0 THEN
		PRINT "パスワード<#TAB>" + Matches_Pass.Item(0).SubMatches(0)
	ELSE
		PRINT "パスワード<#TAB>"
	ENDIF
	PRINT "-----"
NEXT

//////////////////////////////////////////////////
// 【引数】
//   str : 正規表現による検索の対象となる文字列 
//   Pattern : 正規表現で使用するパターンを設定 
//   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
//   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
	DIM re = CREATEOLEOBJ("VBScript.RegExp")
	re.Pattern = Pattern
	re.IgnoreCase = IgnoreCase
	re.Global = Global
	RESULT = re.Execute(str)
FEND
使用関数

参考文献

  1. Rubular: a Ruby regular expression editor
  2. Regexper

関連記事

isDate関数 (自作関数)
引数に指定した値が日付として認識できる場合はTrueを返します。認識できない場合はFalseを返します。
reReplace関数 (自作関数)
正規表現置換を行います。
reTest関数 (自作関数)
マッチングを行い、マッチしたかどうかを真偽値で返します。