Автор Тема: Паттерн для разбития текста на слова, цифры, символы  (Прочитано 2194 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Afonichev [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1535
  • Репутация: 408
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Для примера возьмём любой *.au3 файл, допустим:

Код: AutoIt [Выделить]
Local $answer = MsgBox(4, "AutoIt Example", "This script will count to 5 using a 'Do' loop.  Run?")

; Check the user's answer to the prompt (see the help file for MsgBox return values)
 



необходимо его разбить на слова, цифры, символы, пробелы и переносы строк что бы получилось следующее:

(нажмите для показа/скрытия)


Добавлено: Июль 21, 2013, 16:51:32
Сделал что хотел, правда на PureBasic'е, нужно ли отмечать тему решённой, может ещё кому нибудь понадобится что - то похожее.
« Последнее редактирование: Июль 21, 2013, 16:51:32 от Viktor1703, Причина: Объединение сообщений »

Русское сообщество AutoIt


Оффлайн beliy [?]

  • Продвинутый
  • ***
  • Сообщений: 372
  • Репутация: 72
  • Пол: Мужской
    • Награды
Незнаю насколько данная задача решается с помощью регулярных выражений, но чем стандартный StringReplace не вариант?
Вроде ж нормально отрабатывает:
Код: AutoIt [Выделить]
Dim $aArray[9][2] = [[@CRLF, @CRLF & '{CRLF}' & @CRLF], _
                     [' ', @CRLF & '{space}' & @CRLF], _
                     ['(', @CRLF & '(' & @CRLF], _
                     [')', @CRLF & ')' & @CRLF], _
                     [',', @CRLF & ',' & @CRLF], _
                     ['"', @CRLF & '"' & @CRLF], _
                     ["'", @CRLF & "'" & @CRLF], _
                     [';', @CRLF & ';' & @CRLF], _
                     [@CRLF & @CRLF , @CRLF ]]
                     
$hFile = FileOpen(@ScriptDir & '\script.au3', 0)

If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$sChars = FileRead($hFile)

For $i = 0 To UBound($aArray) -1
   $sChars  = StringReplace($sChars , $aArray[$i][0], $aArray[$i][1])
Next

MsgBox(0, "Результат:", $sChars)

FileClose($hFile)


Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8070
  • Репутация: 2311
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.14.0
Viktor1703  [?]
Цитировать
необходимо его разбить на слова, цифры, символы, пробелы и переносы строк что бы получилось следующее
Код: AutoIt [Выделить]
#include <Array.au3>

$vTest = _
    'Local $answer = MsgBox(4, "AutoIt Example", "This script will count to 5 using a ''Do'' loop.  Run?")' & @CRLF & @CRLF & _
    '; Check the user''s answer to the prompt (see the help file for MsgBox return values)'

$aRet = StringRegExp($vTest, '([a-zA-Z]+|\$\w+|[\d\(\)\.,;"''=\h]|\r\n)', 3)
$aDisplay = $aRet

For $i = 0 To UBound($aDisplay)-1
    $aDisplay[$i] = StringReplace(StringReplace($aDisplay[$i], @CRLF, '{CRLF}'), ' ', '{space}')
Next

_ArrayDisplay($aDisplay)



Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Русское сообщество AutoIt

Re: Паттерн для разбития текста на слова, цифры, символы
« Ответ #2 Отправлен: Июль 21, 2013, 21:14:03 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
16 Ответов
15062 Просмотров
Последний ответ Октябрь 11, 2010, 23:53:35
от CreatoR
8 Ответов
3522 Просмотров
Последний ответ Апрель 16, 2013, 19:52:33
от Rivald
1 Ответов
877 Просмотров
Последний ответ Июль 02, 2015, 09:28:41
от C2H5OH
2 Ответов
992 Просмотров
Последний ответ Июль 28, 2015, 18:14:56
от urrya
3 Ответов
1066 Просмотров
Последний ответ Июнь 11, 2016, 13:44:33
от alex33
16 Ответов
2035 Просмотров
Последний ответ Май 03, 2017, 08:55:27
от VadimKHL
5 Ответов
1536 Просмотров
Последний ответ Апрель 22, 2017, 14:47:26
от Garrett
3 Ответов
1174 Просмотров
Последний ответ Июль 12, 2018, 09:23:54
от alex33
1 Ответов
228 Просмотров
Последний ответ Февраль 03, 2019, 13:13:55
от ra4o
7 Ответов
869 Просмотров
Последний ответ Март 26, 2019, 19:34:40
от ra4o