Выражение Perl Regex для захвата строки между началом и концом строки (с концом строки, имеющим пробел с символом) - PullRequest
2 голосов
/ 11 октября 2019

Моя строка данных такова:

(wlc-nyhy30-a) *

Мне нужно удалить начальные и конечные скобки, которые точно соответствуют ) *.

Моя конечная строка должна быть:

wlc-nyhy30-a

Я могу легко убрать начало (, как показано ниже, но мне очень трудно заставить Perl сопоставить и удалить конец строки ) *

Здесьпервая часть, которая работает:

$output{'prompt'} =~ s/^\(//;

Цените любую помощь. Заранее спасибо.

1 Ответ

5 голосов
/ 11 октября 2019

Вы можете использовать:

s/^\((.*)\)\s\*$/$1/

Объяснение:

^          beginning of the string
\(         opening parenthese - needs to be escaped with \
(.*)       ...a capturing group...
\)         closing parenthese - needs to be escaped with \
\s         a single space
\*         a star - needs to be escaped
$          end of the string

Это соответствует строке в целом, следовательно, она будет применяться к примеру, который вы предоставили в качестве примера ((wlc-nyhy30-a) *), также оставляя нетронутыми другие строки, такие как (wlc-nyhy30-a) a.

Демо:

my $string = "(wlc-nyhy30-a) *";
$string =~ s/^\((.*)\)\s\*$/$1/
print $string, "\n";

Выход:

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