Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/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_Perl - Fatal编程技术网

Regex Perl正则表达式,它不';行不通

Regex Perl正则表达式,它不';行不通,regex,perl,Regex,Perl,我想写一个这样的正则表达式:(这是我目前拥有的) ($line是一个字符串) 在正则表达式中,我可以找到以下内容: 在字符串开头,0个或多个空格后跟$lhs,0个或多个空格后跟字符-或(可以是多次,例如-->),后跟0个或多个空格,后跟$lhs 它显然不起作用,但我怎样才能使它起作用呢 谢谢 我找到了我的答案: $line =~ /^\s*$lhs\s*[->]*\s*$lhs/ 非常感谢Marc B的帮助 *是一个修饰符,因此^*没有意义。“零或多行起始”\s是单个空格,而不是“0或更

我想写一个这样的正则表达式:(这是我目前拥有的) (
$line
是一个字符串)

在正则表达式中,我可以找到以下内容:

在字符串开头,0个或多个空格后跟
$lhs
,0个或多个空格后跟字符
-
(可以是多次,例如
-->
),后跟0个或多个空格,后跟
$lhs

它显然不起作用,但我怎样才能使它起作用呢

谢谢

我找到了我的答案:

$line =~ /^\s*$lhs\s*[->]*\s*$lhs/

非常感谢Marc B的帮助

*
是一个修饰符,因此
^*
没有意义。“零或多行起始”<代码>\s是单个空格,而不是“0或更多”。您需要
/^\s*..
哦,好的。。这就是我要写的吗<代码>/^\s*\Q$lhs\s*[->]\s*\Q$lhs/它不会像上一个错误那样给我一个错误,但也不起作用(根据我在原始帖子中的口头描述),这个错误有什么意义?这将从该点开始关闭元字符…因此,如果中间有要转义且不被解释为正则表达式一部分的字符,则使用
\Q
\E
?就像用“\”来表示整个字符串一样吗?@Gambit2007是的,没错。它基本上在每个非\w字符前插入一个反斜杠。
$line =~ /^\s*$lhs\s*[->]*\s*$lhs/