Что нового

Поиск символа вопроса и прилегающей части текста

krekerok

Новичок
Сообщения
10
Репутация
0
Здравствуйте.

Перебираю массив, содержащий в себе текст из файла, на предмет поиска знака вопроса и относящейся к нему части текста.

Код:
_FileReadToArray(@ScriptDir & '\example.txt', $sTextFile)

$sPattern = '(.*?[?]+)'

For $i = 0 To UBound($sTextFile) - 1 Step +1
    $str = StringRegExp($sTextFile[$i], $sPattern, 1)
    If Not @error Then ;Найдена строка со знаком вопроса
    ;Какие-либо доп. манипуляции
    EndIf
Next


Не получается подогнать шаблон так, чтобы оставалась только относящаеся к вопросу часть текста. Например: "Это всё, конечно, для нас хорошо. Но что вы думаете вот об этом?"
И, если текст с вопросом встречается в строке ещё раз, то он не учитывается.

Подскажите, пожалуйста, как поправить дело?

Мини-пример прилагается к сообщению.
 

Вложения

  • example.txt
    237 байт · Просмотры: 3
Автор
krekerok

krekerok

Новичок
Сообщения
10
Репутация
0
@Alofa
Да, только выпала строка с вопросами: "однако.за что нам всё это?больше не будет?"
 
Автор
krekerok

krekerok

Новичок
Сообщения
10
Репутация
0
@Alofa

Должны остаться только знак вопроса и относящийся к нему текст.

Что же нам делать?
Мы справимся?
Что за вопросы?
ЗАЧЕМ???
за что нам всё это?
больше не будет?
Нормально же прыгал, чего победу-то не дали?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
#include <array.au3>
$s = 'однако.за что нам всё это? больше не будет?'
$a = StringRegExp($s, '[^\.!]+\?+', 3)
For $i = 0 To UBound($a) - 1
	$b = StringRegExp($a[$i], '\s*([^?]+\?)', 3)
	_ArrayDisplay($b)
Next

По строчкам только работает.
 
Автор
krekerok

krekerok

Новичок
Сообщения
10
Репутация
0
@Alofa
Эмм, для выполнения проверки - это проблематично, но это не отменяет того факта, что всё предложение относится к знаку вопроса. :smile:
Скорее всего, такая строка при проверке будет пропущена.

@inververs
Сейчас попробую.

UPD: Для строк ваш вариант работает. Кажется, можно переделать для обработки массива.
 
Верх