在Perl中,用于匹配包括换行符在内的任何字符的正则表达式

19 浏览
0 Comments

在Perl中,用于匹配包括换行符在内的任何字符的正则表达式

我需要一个类似于([.\n]*)的正则表达式,但它不起作用。我还尝试了s修饰符...

我想从一个表中获取数据,这个正则表达式在一些情况下是有效的:

~m/>(@ARGV)<\/.*\n(\n){3}/

我需要使用$3,但换行符的数量未定义,我不知道该如何解决这个问题。有人可以帮帮我吗?

0
0 Comments

Perl中的正则表达式可以用于匹配各种字符,包括换行符。然而,有时候我们需要匹配的字符可能包含任意数量的换行符,而不是固定的数量。本文将介绍一个与此相关的问题以及解决方法。

在一个讨论中,某些情况下他在测试字符串中没有找到`~m`和`~s`这两个模式。因此,他尝试了另一个模式来匹配包含换行符的字符。他的模式如下所示:

((?:

他还提供了一个REGEX 101 DEMO来演示这个模式的工作原理。

然而,这个模式存在一个问题,就是他不知道换行符的数量,它可以是0个或多个。他尝试用`*`和`{0,}`替代了原来模式中的`{3}`,但却无法得到正确的匹配结果。他在这里提供了一个示例数据

后来,有人建议他将匹配结果放在捕获组`$1`中,以便后续使用。他尝试了原始版本和修改后的版本,结果都能正常工作,并表示感谢。

此外,还有人提供了第七个版本的解决方案,用于处理未知数量的换行符。但作者并未提供该版本的具体内容。

当我们需要匹配包括换行符在内的任意字符时,可以使用Perl的正则表达式来实现。可以利用捕获组将匹配结果保存起来,以便后续使用。如果换行符的数量是未知的,可以使用`*`或`{0,}`来表示任意数量的换行符。

以上是关于"Regex for any characters including new lines in Perl"问题的原因和解决方法的整理。

0