Regex для удаления текста в скобках, если год присутствует - PullRequest
0 голосов
/ 25 февраля 2019

Удалить весь текст в скобках, если год YYYY присутствует в любой позиции в скобках.

Вот что я уже пробовал:

a = []
while line = DATA.gets       
  a = a.push(line.split(/\(.+\d{4}.+\)/))
end                        

a.each {|x|
p x}
__END__
Start text (Name, 2019) and more text (reg bracket - keep) and more text (2018 references - remove).

Я ожидаю, что этот текст вернется: "Начальный текст и еще текст (reg скобка - сохранить) и еще текст. "

1 Ответ

0 голосов
/ 25 февраля 2019

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

Соответствует открывающей скобке, затем совпадение 0+ раз неоткрывающая или закрывающая скобка.Затем сопоставьте 4 цифры и снова 0+ раз, а не открывающую или закрывающую скобку.

\([^()]*\d{4}[^()]*\)

См. regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...