Обрезать всё, что после первого тире

Статус
В этой теме нельзя размещать новые ответы.

Sunday

Cōgitō ergō sum
Регистрация
13 Дек 2009
Сообщения
823
Реакции
342
Подсобите плиз с регуляркой для PHP или для Notepad-а может, если там это возможно.

Есть несколько тысяч строк, которые могут имеют такой формат:
Это слово или фразу нужно оставить – слова, слова, слова-слова, 12345, слова\слова и цифры.
Это-слово или фразу нужно оставить – слова, слова, слова. Слова; (слова).

1-ю часть строки нужно оставить и обрезать после неё всё, включая пробелы.
Нужно учесть, что в 1-й части в словах тоже может быть дефис.
Во второй части могут встречаться какие угодно слова, знаки препинания, спец. символы и цифры.

Может это облегчит задачу:
Тире, которое идёт сразу после 1-й части всегда среднее, и всегда с пробелами по краям, и встречается только в этом месте.
А дефис, который встречается в словах, всегда короткий и без пробелов.
В примере я это показал.
 
Обязательно регулярным выражением?
Можно с помощью explode в PHP это сделать.
PHP:
$file = array('Это слово или фразу нужно оставить – слова, слова, слова-слова, 12345, слова\слова и цифры.','Это-слово или фразу нужно оставить – слова, слова, слова. Слова; (слова).');
foreach($file as $v) {
    echo explode(' - ',$v)[0] . "\n"
}
 
Если регуляркой для PHP или для Notepad-а
Код:
(?m-s)^.+?\K – .*
Строку замены оставить пустой.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху