在perl中匹配$END$
当我使用该行时:在perl中匹配$END$,perl,Perl,当我使用该行时: if (m/^$END$/g) { # ... } 在我的代码中,编译器认为我在搜索代码中的静态“END$”, 而我想搜索字符串“$END$”。我该怎么做呢?要匹配文字$,只需用反斜杠将其转义: if (m/^\$END\$/) { ... } 删除了不应该存在的/g。要匹配文字$,只需使用反斜杠将其转义: if (m/^\$END\$/) { ... } if (/\A\Q $END$ /x) { ... } 删除了不应该存在的/g if (/\A\Q $E
if (m/^$END$/g) {
# ...
}
在我的代码中,编译器认为我在搜索代码中的静态“END$”,
而我想搜索字符串“$END$”。我该怎么做呢?要匹配文字
$
,只需用反斜杠将其转义:
if (m/^\$END\$/) { ... }
删除了不应该存在的
/g
。要匹配文字$
,只需使用反斜杠将其转义:
if (m/^\$END\$/) { ... }
if (/\A\Q $END$ /x) { ... }
删除了不应该存在的/g
if (/\A\Q $END$ /x) { ... }
:
\Q
禁用模式元字符,直到\E
删除了不应该存在的/g
if (/\A\Q $END$ /x) { ... }
:
\Q
禁用模式元字符,直到\E
删除了不应该在那里的
/g
。如前所述(并且是一个近似值),该正则表达式查看变量$END
中的值是否与$中的整行匹配。第一个$
前面需要一个反斜杠,以防止它被解释为变量开头的符号,如果第二个$
前面没有标记行的结尾,则可能需要另一个反斜杠。我在给另一个人的评论中建议了if(m/^\$END\$/gi)
(考虑到你最初的尝试包括/I
修饰符和/g
修饰符,这在这里可能并不需要)。是的@JonathanLeffler先生。现在我的问题是否符合SSCCE格式p这个问题很好。@JonathanLeffler我个人发现在我的代码(?)中“编译器(?)认为(?)我正在搜索一个静态(?)“END$”?这个短语非常令人困惑。用问号标记有问题的零件。如果(/…/g)
,切勿使用。除了在概念上毫无意义外,它还可能导致奇怪、微妙、意外的结果。正如所写的(并且是第一个近似值),该正则表达式会查看变量$END
中的值是否与$\ucode>中的整行匹配。第一个$
前面需要一个反斜杠,以防止它被解释为变量开头的符号,如果第二个$
前面没有标记行的结尾,则可能需要另一个反斜杠。我在给另一个人的评论中建议了if(m/^\$END\$/gi)
(考虑到你最初的尝试包括/I
修饰符和/g
修饰符,这在这里可能并不需要)。是的@JonathanLeffler先生。现在我的问题是否符合SSCCE格式p这个问题很好。@JonathanLeffler我个人发现在我的代码(?)中“编译器(?)认为(?)我正在搜索一个静态(?)“END$”?这个短语非常令人困惑。用问号标记有问题的零件。如果(/…/g)
,切勿使用。除了在概念上毫无意义外,它还可能导致奇怪、微妙、意外的结果。
if (/\A\Q $END$ /x) { ... }