如何将{1,0}与正则表达式匹配?
答
只需在{0,1}
之后加上一个问号,如{0,1}?
,它会优选匹配零次一次。问号使它“不贪婪”,这意味着它不会尽可能吞下。
测试(在Perl):
#! perl
use warnings;
use strict;
my $string = "abcdefghijk";
if ($string =~ /(..{0,1}?)/) {
print "$1\n";
}
打印
a
也可以代替{0,1}?
使用??
。
答
这听起来像你在寻找一个负面的断言。对于语法通常是(?!...)
例如,A(?!B)C
将匹配然后是C,但如果C的开头匹配B.
答
?
或{0,1}
必要时将匹配一些模式,但现在我想要反向地做。如果可能
没有,?
或{0,1}
将匹配某种模式。正则表达式默认情况下是贪婪的。
要使它们匹配必要,它们需要看起来像??
或{0,1}?
。
似乎你已经有了你想要的东西。
说,不匹配如果有必要。
说“不匹配”通常是困难和不可能的正则表达式之间的东西。除非你想出一个你需要做的真实样本,否则这很难回答。
我已经回答了下面的问题,但似乎每个人都误解了你想要的。也许你可以举一个你希望如何匹配的例子。 – 2009-11-05 10:20:14
@Mask:你真的需要重新陈述这个问题。这是非常模糊和难以回答的。尝试添加你想要做的样本。 – Tomalak 2009-11-05 10:24:36