Уважаемые знатоки,
у меня вопрос по регулярным выражениям.
Надо загрузить текстовый файл в переменную и удалить все пустые строки
(для последующей StringSplit). Пустые строки могут быть в середине, до и после текста.
Это делаю в 3 приема:
Пробовал обьединить хотя бы 2. и 3. в одно выражение, но не получилось
Перестает работать, если в строке присутствует знак $ (?)
Хоть и с 3-я строками можно жить, хочется понять, где же ошибка
у меня вопрос по регулярным выражениям.
Надо загрузить текстовый файл в переменную и удалить все пустые строки
(для последующей StringSplit). Пустые строки могут быть в середине, до и после текста.
Это делаю в 3 приема:
Код:
; 1. удаляет все пустые строки
$sText = StringRegExpReplace($sText, "(?sm)" & @CRLF & "\s*" & @CRLF, @CRLF)
; 2. удаляет все пустую строки спереди
$sText= StringRegExpReplace($sText, '(^[\v]*)', '')
; или
$sText= StringRegExpReplace($sText, '(^[\v]*)(.*?)', '\2')
; 3. удаляет пустую строки сзади
$sText = StringRegExpReplace($sText, '([\r\n]*$)', '')
; или
$sText = StringRegExpReplace($sText, '(.*)([\v]*$)', '\1')
; потом
;$aT1 = StringSplit(StringStripCR($sText), @LF)
;_ArrayDisplay($aT1)
Пробовал обьединить хотя бы 2. и 3. в одно выражение, но не получилось
Код:
$sText = StringRegExpReplace($sText, '^[\v]*(.*?)?[\v]*', '\1') ; удаляет только в начале
$sText = StringRegExpReplace($sText, '^[\v]*?(.*?)([\r\n])$', '\1') ; не работает
$sText = StringRegExpReplace($sText, '(^[\v]*?).*?([\r\n])*$', '') ; не работает
Перестает работать, если в строке присутствует знак $ (?)
Хоть и с 3-я строками можно жить, хочется понять, где же ошибка