例如,这个正则表达式

(.*)<FooBar>

将匹配:

abcde<FooBar>

但我如何让它在多行之间匹配呢?

abcde
fghij<FooBar>

当前回答

这对我来说是最简单的方法:

(\X*)<FooBar>

其他回答

解决方案:

使用模式修饰符sU将在PHP中获得所需的匹配。

例子:

preg_match('/(.*)/sU', $content, $match);

来源:

模式修饰符

我想在Java中匹配一个特定的if块:

   ...
   ...
   if(isTrue){
       doAction();

   }
...
...
}

如果我使用regExp

if \(isTrue(.|\n)*}

它包含方法块的右大括号,所以我使用

if \(!isTrue([^}.]|\n)*}

从通配符匹配中排除结束大括号。

试题:* \ n *。*<FooBar>假设你也允许空换行。因为你允许任何字符在<FooBar>之前不包括任何字符。

在Ruby中,你可以使用'm'选项(多行):

/YOUR_REGEXP/m

有关更多信息,请参阅ruby-doc.org上的Regexp文档。

在许多正则表达式方言中,/[\S\ S]*<Foobar>/将满足您的需要。源