#include <Array.au3>
$sText = 'string1 text text' & @CRLF & 'string2 text2' & @CRLF & 'text string1 text' & @CRLF & 'string1'
$aResult2Word = StringRegExp($sText, '(?i)string1\stext', 3)
_ArrayDisplay($aResult2Word)
ConsoleWrite(UBound($aResult2Word) & @CRLF)
$aResult1Word = StringRegExp($sText, '(?i)string1', 3)
_ArrayDisplay($aResult1Word)
ConsoleWrite(UBound($aResult1Word) & @CRLF)
#include <Array.au3>
$sText= "#include-once" & _
"#include <WindowsConstants.au3>" & _
"#include <GUICon(stantsEx.au3>" & _
"#include <StaticCon(stants.au3> " & _
"#include <Array.au3>"
$sFind="Con(st"
$aRez=StringRegExp($sText, "\Q" & $sFind & "\E", 3)
_ArrayDisplay($aRez)
MsgBox(0,'Инфо','Найдено совпадений : ' & UBound($aRez))
Для этих целей есть специальный раздел! ;)Прошу помощи в нахождении количества совпадений в тексте с помощью регулярных выражений
Для этих целей есть специальный раздел!
$sText= "#include-once" & _
"#include <WindowsConstants.au3>" & _
"#include <GUICon(stantsEx.au3>" & _
"#include <StaticCon(stants.au3> " & _
"#include <Array.au3>"
$sFind="Con(st"
StringRegExpReplace($sText, "\Q" & $sFind & "\E", '')
If Not @error Then MsgBox(0,'Инфо','Найдено совпадений : ' & @extended)
я так всегда использовал
Откуда такие данные?
$sText = '#include-once' & _
'#include <WindowsConstants.au3>' & _
'#include <GUICon(stantsEx.au3>' & _
'#include <StaticCon(stants.au3> ' & _
'#include <Array.au3>'
$sFind = 'Con(st'
StringReplace($sText, $sFind, '')
ConsoleWrite(@extended & @CRLF)
Оказывается стандартный StringReplace тоже возвращает количество замен:
Если шаблон такой: "\Q" & $sFind & "\E", то, ИМХО, применим.но он неприменим , если $sFind - есть шаблон
Dim $aArray[1000001] = [1000000]
$sText = ''
For $i = 1 To $aArray[0]
$sText &= (Chr(Random(65, 90, 1)) & Chr(Random(97, 122, 1)) & @CRLF)
Next
$hFile = FileOpen(@ScriptDir & '\test.txt', 2)
FileWrite($hFile, $sText)
FileClose($hFile)
$sFind = 'Zz'
$hFile = FileOpen(@ScriptDir & '\test.txt')
$sText = FileRead($hFile)
FileClose($hFile)
$iStart = TimerInit()
StringReplace($sText, $sFind, '', 0, 1)
$iExt = @extended
$sTime = StringFormat('%.2f ms', TimerDiff($iStart))
MsgBox(0, 'StringReplace', $sTime & ', Совпадений: ' & $iExt)
$iStart = TimerInit()
$aRez = StringRegExp($sText, '\Q' & $sFind & '\E', 3)
$sTime = StringFormat('%.2f ms', TimerDiff($iStart))
MsgBox(0, 'StringRegExp', $sTime & ', Совпадений: ' & UBound($aRez))
$iStart = TimerInit()
StringRegExpReplace($sText, '\Q' & $sFind & '\E', '')
$iExt = @extended
$sTime = StringFormat('%.2f ms', TimerDiff($iStart))
MsgBox(0, 'StringRegExpReplace', $sTime & ', Совпадений: ' & $iExt)
Если шаблон такой: "\Q" & $sFind & "\E", то, ИМХО, применим.
$sFind='Con.*st'
$sFind='Con(st'