IMStrelcov
CTPEJIbLLOB
- Сообщения
- 253
- Репутация
- 64
Написал регулярное выражение для разделения параметров на строки (смотрите пример ниже)
Помогите уменьшить регулярное выражение (если это возможно), но чтобы оно выдавало тот же результат как и пример ниже.
Пример:
Помогите уменьшить регулярное выражение (если это возможно), но чтобы оно выдавало тот же результат как и пример ниже.
Пример:
Код:
Global $sCfg = 'Key1 Key2=Value2 Key3="Value 3" Key4="""Value"" 4" Key5="""Value"" 5"'&@CRLF&'Key6 Key7=Value7'&@CRLF
Global $RegEx='([^(\s|"|=)]+(?:=(?:[^(?:\s|"|=)]+|(?:"(?:[^(\R|")]|"")+)"?))?)'
Global $aCfg = StringRegExp($sCfg, $RegEx, 3)
Display_($aCfg)
Func Display_($_vCfg)
Local $_iWindow = GUICreate('', 400, 200)
Local $_iEdit = GUICtrlCreateEdit('', 10, 10, 380, 180)
If IsArray($_vCfg) Then
Local $_iA
For $_iA = 1 To UBound($_vCfg) -1
$_vCfg[0] &= @CRLF& $_vCfg[$_iA]
Next
$_vCfg = $_vCfg[0]
EndIf
GUICtrlSetData($_iEdit, $_vCfg)
GUISetState()
While 1
If GUIGetMsg() = -3 Then
ExitLoop
EndIf
WEnd
GUIDelete($_iWindow)
EndFunc