Автор Тема: Многострочный текст  (Прочитано 1433 раз)

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

Оффлайн Крепыш [?]

  • Новичок
  • *
  • Сообщений: 98
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.14.0
Многострочный текст
« Создано: Февраль 16, 2017, 15:51:08 »
Из многострочного текста нужно выбрать только те строки, которые содержат определённые символы: цифры, дефис, точка, запятая
Не пойму, почему запрос
Код: AutoIt [Выделить]
  Local $aResult = StringRegExp('Date,Time\n10,10\n11,11', '([\d\.,-]+)\R*', 3)
  If @error Then Return
  For $i = 0 to UBound($aResult)-1
    ConsoleWrite($aResult[$i] & @CRLF)
  Next

захватывает запятую из первой строки:
Цитировать
,
10,10
11,11

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

Многострочный текст
« Отправлен: Февраль 16, 2017, 15:51:08 »

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2085
  • Репутация: 451
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Многострочный текст
« Ответ #1, Отправлен: Февраль 16, 2017, 16:14:42 »
Крепыш  [?]
Цитировать
Не пойму, почему запрос
Потому что в шаблон в квадратных скобках работает как ИЛИ.

Оффлайн Крепыш [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Многострочный текст
« Ответ #2, Отправлен: Февраль 16, 2017, 16:48:29 »
шаблон в квадратных скобках работает как ИЛИ.
Это-то понятно.

Этот шаблон '([\d\.,-]+)\R*' я читаю, как:
Любой символ из перечисленных в квадратных скобках, повторённый один или более раз, и сразу за этой группой - любой из символов переноса строки.
Строка "Date,Time\n" не удовлетворяет этому условию, т.к. после запятой идёт буква "T" - не символ переноса строки.

Оффлайн Alofa [?]

  • Скриптер
  • ****
  • Сообщений: 1020
  • Репутация: 131
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Многострочный текст
« Ответ #3, Отправлен: Февраль 16, 2017, 17:44:04 »
Крепыш вы забыли расказать про звездочку (*).

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

Re: Многострочный текст
« Ответ #3 Отправлен: Февраль 16, 2017, 17:44:04 »

Оффлайн Крепыш [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Многострочный текст
« Ответ #4, Отправлен: Февраль 16, 2017, 18:10:08 »
Код: AutoIt [Выделить]
StringRegExp('Date,Time\n10,10\n11,11', '([\d\.,-]+)\R+', 3)

Этот шаблон вообще не работает. Что я не так делаю?

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2085
  • Репутация: 451
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Многострочный текст
« Ответ #5, Отправлен: Февраль 16, 2017, 18:38:24 »
\n это перенос строки?

Оффлайн Крепыш [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Многострочный текст
« Ответ #6, Отправлен: Февраль 16, 2017, 19:01:41 »
inververs,
Точно! В AutoIt же перенос строки по-другому. Спасибо.
Вот так работает:
Код: AutoIt [Выделить]
Local $aResult = StringRegExp('Date,Time' & @CRLF & '10,10' & @CRLF & '11,11', '(?m)^([\d\.,-]+)$', 3)
If @error Then Exit
For $i = 0 to UBound($aResult)-1
  ConsoleWrite($aResult[$i] & @CRLF)
Next


Оффлайн Крепыш [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Многострочный текст
« Ответ #7, Отправлен: Февраль 19, 2017, 16:12:14 »
А в описании метасимвола \R
Цитировать
\R [\n\f\r\v] Chr(10), Chr(11), Chr(12), Chr(13) любой из символов переноса строки
похоже ошибка

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

Re: Многострочный текст
« Ответ #7 Отправлен: Февраль 19, 2017, 16:12:14 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
8 Ответов
3710 Просмотров
Последний ответ Апрель 17, 2010, 16:45:02
от CreatoR
5 Ответов
6668 Просмотров
Последний ответ Июль 03, 2010, 18:14:21
от selahssea
4 Ответов
2350 Просмотров
Последний ответ Июнь 11, 2011, 16:08:45
от axlwor
6 Ответов
4193 Просмотров
Последний ответ Июль 27, 2011, 14:59:08
от Zaramot
1 Ответов
1964 Просмотров
Последний ответ Май 07, 2013, 15:05:03
от ---Zak---
2 Ответов
831 Просмотров
Последний ответ Март 28, 2014, 17:43:51
от Greyzer
2 Ответов
818 Просмотров
Последний ответ Август 20, 2014, 12:51:52
от konokrad666
1 Ответов
1145 Просмотров
Последний ответ Сентябрь 08, 2014, 01:48:26
от oesoes
0 Ответов
552 Просмотров
Последний ответ Ноябрь 26, 2014, 09:48:23
от Crusaderman
2 Ответов
934 Просмотров
Последний ответ Март 22, 2017, 19:07:21
от Alofa