Javascript 试图编写一个正则表达式,其中新行可能出现在组中的任何位置

Javascript 试图编写一个正则表达式,其中新行可能出现在组中的任何位置,javascript,regex,Javascript,Regex,我试图让正则表达式将文本分成两部分,忽略这两部分之后的所有内容 我尝试使用的正则表达式(不足)是: /Artikelnummer(?:(&&&))(.*)(?:\s*.*)\W?(?:Dokumentation&&&KKS-Nummer&&&Beschreibung&&&Seite&&&)((.*)&&&(.*)&&&(\d)+)

我试图让正则表达式将文本分成两部分,忽略这两部分之后的所有内容

我尝试使用的正则表达式(不足)是:

/Artikelnummer(?:(&&&))(.*)(?:\s*.*)\W?(?:Dokumentation&&&KKS-Nummer&&&Beschreibung&&&Seite&&&)((.*)&&&(.*)&&&(\d)+)*/
我匹配的文本保存在以下链接中:

第1部分)在艺术大师之后和演讲之前的一切。。。(易于匹配)

第2部分)遵循以下模式的
(?:Dokumentation&&KKS Nummer&&Beschreibung&&Seite&&&)之后的所有内容

                                text&&&text&&&digits
在上面的一个链接中,除了抛出一行新行之外,上面的模式可以工作,这会导致遗漏一些应该包含的文本

第一部分是:

all&&&Vorwort&&&1&&&all&&&Sicherheit&&&2&&&all&&&Richtlinien und Normen&&&3&&&all&&&Produktbeschreibung&&&4&&&all&&&Installation&&&5&&&all&&&Wichtige Informationene zur Inbetriebnahme&&&6&&&all&&&Projektierung - Wichtige Infos&&&7&&&all&&&Anhang 1&&&8&&&all&&&Anhang 2&&&9&&&all&&&Anhang 3&&&10&&&all&&&Anhang 4&&&11&&&all&&&Anhang 5&&&12&&&all&&&Anhang 6&&&13&&&all&&&Anhang 7&&&14&&&all&&&Anhang 8&&&15&&&all&&&Anhang 9&&&16&&&all&&&Anhang 10&&&17&&&all&&&Anhang 11&&&18&&&all&&&Anhang 12&&&19&&&all&&&Anhang 13&&&20&&&all&&&Anhang 14&&&21&&&all&&&Anhang 15&&&22&&&all&&&Anhang 16&&&23&&&all&&&Anhang 17&&&24&&&all&&&Anhang 18&&&25&&&all&&&Anhang 19&&&26&&&all&&&Anhang 20&&&27&&&all&&&Anhang 21&&&28&&&all&&&Anhang 22&&&29&&&all&&&Anhang 23&&&30&&&all&&&Anhang 24&&&31&&&all&&&Anhang 25&&&32&&&all&&&Anhang 26&&&33
然后这不匹配,因为插入了换行符:

all&&&Anhang 27&&&34&&&all&&&Anhang 28&&&35&&&all&&&Anhang 29&&&36&&&all&&&Anhang 30&&&37&&&all&&&Anhang 31&&&38&&&all&&&Anhang 32&&&39&&&all&&&Anhang 33&&&40&&&all&&&Anhang 34&&&41&&&all&&&Anhang 35&&&42&&&all&&&Anhang 36&&&43&&&all&&&Anhang 37&&&44&&&all&&&Anhang 38&&&45

我的问题是,如何重写此正则表达式,以便理论上可以将换行符放置在文本第二部分的任何位置,并且仍然匹配我想要的所有内容?

我不确定这是您想要的,无论如何,此正则表达式也适用于
换行符
s:

Artikelnummer(?:(&&&))(.*)(?:\s*.*)\W?(?:Dokumentation&&&KKS-Nummer&&&Beschreibung&&&Seite&&&)((.*)&&&(.*)&&&(\d)+(\n?)*)*
  • \n
    匹配换行符

  • 是零或一的量词(如果是否找到换行符)

  • *
    如果遇到更多换行符,我会添加这个


    • 我会尝试这样的正则表达式:

      (Artikelnummer([\n|\r| |\S]*)(?=Dokumentation))(([\n|\r| |\S]*&&&){2}\d+)*
      
      正在查找
      \n\r
      和所有其他非空格字符


      第二,我不会用
      ?:
      -来处理每一个发现。正向查找
      ?=
      应该为您提供第一组的要求。

      您的模式
      文本&&&text&&digits
      不代表原样,您真正想要什么?因为这
      …&&&&all&&&Anhang 35&&&&&&…
      不是由上一个pattern@Edwin
      all&&&&&&&&&&&&&&&&&&&&&&&&&;27&&&&&&;34
      怎么不用这个模式来表示呢?因为当你把
      digits
      单独放在一起时,我就知道
      文本
      没有数字,这不是为了将其与正则表达式相匹配,我宁愿将整个文档解析为一个数据结构,然后在那里获取您要查找的数据。这种格式必须有一些模式和文档。那是什么格式?你从哪里得到的?@Edwin它不是一个真正的正则表达式,所以可以用几种方式来解释。对我来说,数字可能属于文本是合乎逻辑的,但任意文本不一定属于数字。如果换行符放在其他地方,这会起作用吗?这取决于你想放在哪里。正则表达式非常清楚,如果换行符在模式中的数字之后,那么它可以工作,否则不行。