Применить Perl RegExp для удаления скобок и текста в конце строки - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть строка, которая включает круглые скобки с текстом внутри круглых скобок. Как убрать круглые скобки с текстом в конце строки, сохранив остальные слова в строке?

Введите:

   Potatoes Rice (Meat)

Выход:

   Potatoes Rice

Мой код:

#! /usr/bin/perl
use v5.10.0;
use warnings;

my $noparenthesis = "Potatoes Rice (Meat)";
$noparenthesis =~ s/^/$1/gi;
say $noparenthesis;

1 Ответ

0 голосов
/ 09 сентября 2018
#! /usr/bin/perl
use v5.10.0;
use warnings;

my $noparenthesis = "Potatoes Rice (Meat)";
$noparenthesis =~ s/\(.*$//g;
say $noparenthesis;

Если в скобках есть другие слова, которые вы хотели бы оставить, поскольку они не находятся в конце предложения, вы можете использовать выражение:

 $noparenthesis =~ s/\s*\([^()]+\)\s*$//g;

Это приведет к удалению только круглых скобок в конце строки и возможных конечных пробелов, а также пробелов, предшествующих им (поэтому в строке не останется конечных пробелов). Поскольку символы ( и ) запрещены в соответствующих круглых скобках, класс отрицанных символов не будет соответствовать вложенным круглым скобкам, если строка имеет это.

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