正则表达式 - 匹配前 1000 个符号

Regex - match first 1000 symbols

我正在使用 OpenOffice 和 Notepad++。

需要匹配文本中大约前 1000 个符号(或更少)直到句子结尾(点号)。例如:

"Once upon a time ... around 1000 symbols ... the end.",

然后您单击下一步搜索并匹配另外大约 1000 个以 . 符号结尾的符号,依此类推。

我尝试了匹配所有内容的正则表达式 (?s).* 和到达换行符时停止的 .{0,1000}

我想我需要像 .{0,1000}\.\n\r.{0,1000}\.\S\s 这样的东西。我注意到我需要在正则表达式中包含 e.g. 之类的内容,否则它会匹配 ...e. 并使 g. 分开。怎么做?

您可以使用

(?s).{0,1000}[.?!…]\B

参见regex demo

详情:

  • (?s) - DOTALL 修饰符,. 现在匹配换行字符
  • .{0,1000} - 任意 0 到 1000 个字符
  • [.?!…]\B - .?! 位于字符串末尾或后跟非-word 字符。