正则表达式匹配多行

Regular expression match over multiple lines

我的目标是匹配括号内的文本(包括它们)。此模式工作正常:/(\-?\(.*\))/gm,尽管它不适用于多行。

任何想法如何也 "catch"

(INDISTINCT ANNOUNCEMENT
          OVER PA)

?

示例如下:

365
00:22:20,105 --> 00:22:21,772
         (CLAMOURING)

366
00:22:21,774 --> 00:22:25,009
      (INDISTINCT ANNOUNCEMENT
      OVER PA)

367
00:22:55,340 --> 00:22:58,509
      (INDISTINCT ANNOUNCEMENT
      OVER PA)

368
00:23:10,655 --> 00:23:11,389
      SARAH: Excuse me.

Example on regex101.com

您可以使用此正则表达式来匹配 () 之间的内容,包括换行符:

/\([\s\S]*?\)/g

在 Javascript 中没有 dotall 标志的情况下,我们使用 [\s\S] 使其也匹配换行符。

RegEx Demo

如评论中所述,.不匹配换行符。但是,您可以使用 [^)] 来匹配除 ) 之外的所有内容,包括换行符。例如

\([^)]*\)

Demo