Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于捕获行首和行尾之间的字符串的Perl正则表达式(行尾有一个带字符的空格)_Regex_String_Perl - Fatal编程技术网

Regex 用于捕获行首和行尾之间的字符串的Perl正则表达式(行尾有一个带字符的空格)

Regex 用于捕获行首和行尾之间的字符串的Perl正则表达式(行尾有一个带字符的空格),regex,string,perl,Regex,String,Perl,我的数据字符串如下所示: (wlc-nyhy30-a) * 我需要去掉与)*完全匹配的开始括号和结束括号 我的结束字符串应该是: wlc-nyhy30-a 我可以很容易地去掉开头的(如下图所示,但我很难让Perl匹配并删除行尾的)* 以下是第一个有效的部分: $output{'prompt'} =~ s/^\(//; 谢谢你的帮助。提前感谢。您可以使用: s/^\((.*)\)\s\*$/$1/ 说明: ^ beginning of the string \(

我的数据字符串如下所示:

(wlc-nyhy30-a) *
我需要去掉与
)*
完全匹配的开始括号和结束括号

我的结束字符串应该是:

wlc-nyhy30-a
我可以很容易地去掉开头的
如下图所示,但我很难让Perl匹配并删除行尾的
)*

以下是第一个有效的部分:

$output{'prompt'} =~ s/^\(//;
谢谢你的帮助。提前感谢。

您可以使用:

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

演示:

收益率:

wlc-nyhy30-a

这个
”*)
在目标字符串中的什么位置?@x15,我认为它应该是“*”,如“
)*
“可能比我们知道的更多。不要认为他声称结束是开始的先决条件,反之亦然,这会引起一个平衡的开合要求。最初的正则表达式似乎fine@x15:嗯,很难说清楚。起初我和你一样读,但后来我改了。OP没有评论。也许我应该编辑我的答案以显示这两种解决方案。
wlc-nyhy30-a