在perl中的多行正则表达式中拆分一行正则表达式
split one line regex in a multiline regexp in perl
我无法将正则表达式拆分成多行。我希望我的正则表达式匹配给定的行:
* Code "l;k""dfsakd;.*[])_lkaDald"
所以我创建了这个有效的正则表达式:
my $firstRegexpr = qr/^\s*\*\s*Code\s+\"(?<Code>((\")*[^\"]+)+)\"/x;
但现在我想像这样将它分成多行(并希望它匹配相同的东西!):
my $firstRegexpr = qr/^\s*\*\s*Code\s+\"
(?<Code>((\")*[^\"]+)+)\"/x;
我读到了这个,但我在使用它时遇到了问题:
/
^\s*\*\s*Code\s+\"
(?<Code>((\")*[^\"]+)+)\"
/x
我的最后一个问题是关于删除 perl 正则表达式中的内联变量:
my $firstRegexpr = qr/^\s*\*\s*Code\s+\"(?<Code>((\")*[^\"$]+)+)\"$/x;
字符$]在正则表达式中匹配为变量,如何定义为非变量?
非常感谢您的宝贵时间,请提供明确的示例。
x
标志的作用非常简单地说 'ignore whitespace'。
因此您不再匹配 'space' 个字符 </code>,而是 <em> 有 </em> 使用 <code>\s
或类似字符。
所以你可以这样写:
if ( m/
^
\d+\s+
fish:\w+\s+
$
/x ) {
print "Matched\n";
}
您可以在各种网站上测试正则表达式,其中一个例子是 https://regex101.com/
举个例子:https://regex101.com/r/eG5jY8/1
但是你的怎么不工作了?
这匹配:
my $string = q{* Code "l;k""dfsakd;.*[])_lkaDald"};
my $firstRegexpr = qr/^\s*
\*
\s*
Code\s+
\"
(?<Code>((\")*[^\"]+)+)
\"
/x;
print "Compiled_Regex: $firstRegexpr\n";
print "Matched\n" if ( $string =~ m/$firstRegexpr/ );
至于没有 $]
- 有两个答案。要么:使用 \
对其进行转义,或者使用 \Q\E
。
我无法将正则表达式拆分成多行。我希望我的正则表达式匹配给定的行:
* Code "l;k""dfsakd;.*[])_lkaDald"
所以我创建了这个有效的正则表达式:
my $firstRegexpr = qr/^\s*\*\s*Code\s+\"(?<Code>((\")*[^\"]+)+)\"/x;
但现在我想像这样将它分成多行(并希望它匹配相同的东西!):
my $firstRegexpr = qr/^\s*\*\s*Code\s+\"
(?<Code>((\")*[^\"]+)+)\"/x;
我读到了这个,但我在使用它时遇到了问题:
/
^\s*\*\s*Code\s+\"
(?<Code>((\")*[^\"]+)+)\"
/x
我的最后一个问题是关于删除 perl 正则表达式中的内联变量:
my $firstRegexpr = qr/^\s*\*\s*Code\s+\"(?<Code>((\")*[^\"$]+)+)\"$/x;
字符$]在正则表达式中匹配为变量,如何定义为非变量?
非常感谢您的宝贵时间,请提供明确的示例。
x
标志的作用非常简单地说 'ignore whitespace'。
因此您不再匹配 'space' 个字符 </code>,而是 <em> 有 </em> 使用 <code>\s
或类似字符。
所以你可以这样写:
if ( m/
^
\d+\s+
fish:\w+\s+
$
/x ) {
print "Matched\n";
}
您可以在各种网站上测试正则表达式,其中一个例子是 https://regex101.com/
举个例子:https://regex101.com/r/eG5jY8/1
但是你的怎么不工作了?
这匹配:
my $string = q{* Code "l;k""dfsakd;.*[])_lkaDald"};
my $firstRegexpr = qr/^\s*
\*
\s*
Code\s+
\"
(?<Code>((\")*[^\"]+)+)
\"
/x;
print "Compiled_Regex: $firstRegexpr\n";
print "Matched\n" if ( $string =~ m/$firstRegexpr/ );
至于没有 $]
- 有两个答案。要么:使用 \
对其进行转义,或者使用 \Q\E
。