Perl Regex表达式以捕获行首与行尾之间的字符串(行尾带有空格的字符)

时间:2019-10-11 20:34:03

标签: regex perl

我的数据字符串是这样的:

(wlc-nyhy30-a) *

我需要删除与) *完全匹配的开头括号和结尾括号。

我的结束字符串应为:

wlc-nyhy30-a

我可以像下面一样轻松剥离开头的(,但是我很难让Perl匹配并删除行) *

这是起作用的第一部分:

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

感谢任何帮助。预先感谢。

1 个答案:

答案 0 :(得分:5)

您可以使用:

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