正则表达式查找与特定模式匹配的行

Regex to find lines that match a specific pattern

我有一个 txt 文件,它的数据有一个 /////////// 来划分结果。我需要找到只有 1 行的结果。

我试过了,但我似乎无法弄清楚如何区分 ///////////

之间的多行

例如,我只需要找到 a 和 d。

/////////// 
a
///////////
b
c
//////////
d
/////////

这会将您需要的字母拉入捕获组:

\/+\s+(\S+)\s+(?=\/+)

解释:

  • 至少一个/,其次是
  • 至少一个空格\s(包括换行符),后跟
  • 至少一个非空白字符\S,后跟
  • 至少一个空格\s,并且
  • 至少一个/,在一个积极的前瞻组中

演示:https://regex101.com/r/pHg9ov/3

  • Ctrl+F
  • 查找内容:^/+\R\K.+(?=\R/+$)
  • 检查 环绕
  • 检查 正则表达式
  • 取消选中 . matches newline
  • 在当前文档中查找所有内容

解释:

^           # beginning of line
  /+        # 1 or more slashes
  \R        # any kind of linebreak
\K          # reset match
.+          # 1 or more any character but newline
(?=         # positive look ahead, make sure we have after:
  \R          # any kind of linebreak
  /+          # 1 or more slashes
  $           # end of ine
)           # end look ahead

屏幕截图(之前):

截图(之后):