StringRegExpReplace
Заменяет текст строки, используя регулярное выражение.
StringRegExpReplace ( "test", "pattern", "replace" [, count = 0 ] )
Параметры
test | Строка для поиска |
pattern |
Образец для поиска (шаблон). См. StringRegExp для создания шаблона. |
replace |
Текст замены регулярного выражения. Чтобы вставить текст группы используйте, \0 - \9 (или $0 - $9) как обратную ссылку. |
count |
[необязательный] Количество замен в строке. По умолчанию 0 - выполняет замену всех найденных образцов. |
Возвращаемое значение
Успех: | Возвращает строку преобразованную регулярным выражением. @extended содержит количество выполненных замен. |
Ошибка: | Устанавливает @error равным 2, что означает ошибку в регулярном выражении. @extended содержит позицию ошибочного символа в регулярном выражении. |
Примечания
Для разделения обратных ссылок от фактических (заменяемых) чисел, обрамите ссылки фигурными скобками: "${1}5".См. также
StringRegExp, StringReplaceПример
$sInput = 'Этот пример демонстрирует замену гласных на символ "-"'
$sOutput = StringRegExpReplace($sInput, "[аяэеоёуюиы]", "-")
MsgBox(0, "Результат до и после", $sInput & @LF & $sOutput)
; Использование обратных-ссылок на группы ($1, $2, $3)
$sInput = 'Дата: 12/31/2009 01:02:03'
$sOutput = StringRegExpReplace($sInput, '(\d{2})/(\d{2})/(\d{4})', ' $2.$1.$3 ')
MsgBox(0, "Результат до и после", $sInput & @LF & $sOutput)
$sInput = 'Удаляет <i>теги</i> в html'
$sOutput = StringRegExpReplace($sInput, '<i>(.*?)</i>', '\1')
MsgBox(0, "Результат до и после", $sInput & @LF & $sOutput)
$sInput = 'Удаляет' & @LF & @LF & @LF & 'пустые строки'
$sOutput = StringRegExpReplace($sInput, '(\r\n|\r|\n){2,}', '\1')
MsgBox(0, "Результат до и после", $sInput & @LF & '--------------' & @LF & $sOutput)
; Разбивает число на группы по 3 символа
$sInput = '56868797689645'
$sOutput = StringRegExpReplace($sInput, '(\A\d{1,3}(?=(\d{3})+\z)|\d{3}(?=\d))', '\1 ')
MsgBox(0, "Результат до и после", $sInput & @LF & $sOutput)
; Получает имя файла без расширения
$sInput = 'D:\Docum\File.au3'
$sOutput = StringRegExpReplace($sInput, '^(?:.*\\)([^\\]*?)(?:\.[^.]+)?$', '\1')
MsgBox(0, "Результат до и после", $sInput & @LF & $sOutput)