Легко: REGEX, чтобы выбрать все после '-' в многострочном тексте

1

Видимо, это непросто! Должен быть способ использования чистого регулярного выражения? Я просто знаю, что есть....

Я нашел способ выбрать текст после первого появления дефиса в текстовом файле

Unique Thing - Some Text
Another Thing - Some Text again
Some Thing - Some more text

Но я хочу только правую часть дефиса. Кто-нибудь знает быстрое регулярное выражение для этого?

Чтобы быть ясным, учитывая текст выше, я хочу

Some Text
Some Text again
Some more text

Благодарю вас!

UPDATE: Может быть, это поможет с фактическим фрагментом текста. Это из самого последнего чата в прямом эфире для брифинга пресс-конференции Whitehouse 2 августа 2017 года.

Hernando Arce - build the wall with solar panels,
Christmas Girl - Let do our own quick internet poll on live chat. Ready........Good with new immigrating into the US policy he is talking about. YES or NO,
ART - AMEN,
coffeefish - Stop H1B visa corruption!,
CarollDelMuro .Arbonne - Red,
Legion - BUILD THE WALL!,
wass sabi - MAGA,
Yokoshima - I live in Florida. Speaking English isn't racist. If you've ever been to Miami, you would know why it needed.,
Home O'DFree - NO the campaign was BUILD THE WALL,
Melissa Renee - is he on benzos,
Paid Observer - kim jung un vs Trump in basketball,
Selina Serrano - polling data,
zonnekat - aliens....,
Farrah - NFL ,
Selina Serrano - massive,
Glenda Greene - MAGA,
Christoph Schneider - who would ever come to USA when they get lower pays? Russians?,
Carolyn Hall - MAGA MAGA MAGA ,
Sandra Honeyman - Isn't limiting immigration to skilled workers going to displace more skilled American workers?,
Mike Hancock - AMERICA FIRST,
Adnan Khan - Send them back to Mars,
Paid Observer - wtf is that,
GDotcom - THIS BETTER PASS OR THERE SHALL BE HANGINGS,
Null_Mage - This man is more attractive than Sarah,
monkeygraborange - FUCK CONGRESS,
Selina Serrano - personal,

Это текст, который я тестирую в regex101. ^[^-]*[^ -], похоже, не работает здесь.

Мне нравятся несколько предложений о разделении строк за строкой, а затем сопоставление, однако поток чата - это много тысяч строк. Конечным результатом всего этого является подсчет вхождений слов. Для тех, кого интересует репо, https://github.com/archae0pteryx/yt-live-chat-scraper, я просто нажал журналы с последнего брифинга для прессы.

  • 2
    Зачем использовать регулярные выражения? str.split("-")[1] должно работать.
  • 0
    Где твой код? Что не работает?
Показать ещё 2 комментария
Теги:
text

3 ответа

2
Лучший ответ

/[\s\S]- (.*)/g - Должен сделать это

[\s\S] - для сопоставления новых строк /g - продолжение совпадения

3

Вы можете использовать группу захвата, если вы хотите использовать регулярное выражение:

const r = /- (.*)/
console.log('Unique Thing - Some Text'.match(r)[1]) //'Some Text'
  • 0
    это только выбирает первую строку. у меня есть тысячи строк. это моя проблема.
  • 0
    Таким образом, вы можете разделить текст: text.split ('\ n'). Map (line => line.match (r) [1])
Показать ещё 1 комментарий
2

Попробуй это:

.*-[ ]*

Выбирайте все перед дефисами и пробелами после дефиса.

С помощью этого паттерна вы можете удалить весь текст, который соответствует и оставить нужную вам нужную сторону.

ОБНОВИТЬ:

Но, если вы хотите правую сторону, вы можете использовать ее:

-(.*)

и выберите группу 1:

Изображение 174551

  • 0
    Нет. это только выбирает первый кусок перед и включая дефис
  • 0
    Это тоже работает!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню