当前位置: 首页 > 知识库问答 >
问题:

匹配新行,为什么[.\n]*在正则表达式中不起作用?[副本]

乐正光誉
2023-03-14

根据我的理解。匹配正则表达式中的几乎所有字符。那么,如果我想匹配任何字符,包括新行,为什么[.\n]*不起作用?

共有1个答案

彭浩穰
2023-03-14

大多数正则表达式方言将.定义为除换行符以外的任何字符,这要么是因为实现通常一次检查一行(例如grep),要么是因为这对与现有工具(许多现代编程语言等)的兼容性很有意义。

Perl和许多重新实现或模仿其“现代”regex风格的语言都有一个DOTALL选项,它更改语义,使.也匹配换行符。

如果您没有该选项,请尝试(.\n)*,但这仍然很大程度上取决于您使用的正则表达式工具;它也可能无法识别换行符的转义代码\n

 类似资料:
  • 问题内容: 我知道进行解析时,我应该理想地删除所有空格和换行符,但是我只是为了快速解决此问题,所以不知道为什么它不起作用。带有“ #### 1”之类的包装器的文档,并尝试基于此进行解析,但是无论我尝试如何,它都无法正常工作,我认为我正确地使用了多行。 这根本不会返回任何结果: 问题答案: 尝试(当然也可以)。 此正则表达式将返回包含节号和节内容的元组。 对于您的示例,这将返回。 (顺便说一句:您的

  • 问题内容: 试图了解正则表达式,我在重复的部分:。 我有以下代码: 如您所见,两个字符串都不匹配该模式。为什么会这样呢? 问题答案: 您不应该在逗号后加空格,这是多余的。

  • 我不知道为什么这个正则表达式不匹配。也许你能发现错误。 ficontents: 我想匹配>>>>>>客户端9462<<<<<捕获该号码,以及此后的所有内容,直到另一个客户端号码。所以我的第一个捕获是“9462”,第二个捕获是“Had a program exception;please check the error log”。 它使用JavaScript设置在regex101.com中工作得很好

  • 问题内容: 我正在做一个小的javascript方法,该方法会接收到一个点列表,并且我必须阅读这些点才能在Google地图中创建多边形。 我在表格上收到这些要点: (lat,long),(lat,long),(lat,long) 因此,我完成了以下正则表达式: 我已经使用RegexPal和收到的确切数据进行了测试: 并且它可以正常工作,所以为什么当我在JavaScript中添加此代码后,结果中会收

  • 问题内容: 我不明白为什么这个简单的正则表达式匹配不返回匹配对象。它返回None我在做什么错? 我完全是newby(昨天开始),想编写一个小程序来搜索文件夹树中的某些文件,打开这些文件并在这些文件中找到某些行,然后将这些行打印到一个新文件中。为了完成第一步,我想匹配os.walk返回的文件名,并使用某种模式进行匹配。因此,现在我正在检查正则表达式的工作方式,并且据我所知,以下代码应该匹配,但是当我

  • 问题内容: 代码: 错误: 我在这里做错了什么? 问题答案: 你需要调用的,然后才能调用和相关的功能,大约匹配的文本查询或操纵它(,,等)。 因此,在您的情况下: 这将找到第 一个 匹配项(如果有),并提取由正则表达式匹配的第一个捕获组。如果要在输入字符串中查找所有匹配项,请更改为循环。