使用regex获取多个匹配项,以1或2位数字、句点和空格开头



我已经试了一个小时了,但我自己无法解决这个问题,如果可以的话,请帮帮我。我正试图将我从pdf文件中复制的多行文本拆分为注释1、2、3和4,理想情况下为1之间的3个注释。以及2。以及3.和3。和4。也应该起作用。

使用该模式,我可以得到4个匹配项,但它只返回每个音符的第一行。

^d{1,2}.[ ][a-zA-Z](.*n)

我试图添加一些内容,但它要么返回错误,要么没有匹配,要么只有1个匹配。

示例文本:

1. SOMEONE SOMEONE SOMEONE
SOMEONE SOMEONE SOMEONE SOMEONE SOMEONE
SOMEONE SOMEONE SOMEONE SOMEONE SOMEONE
2. SOMETHING SOMETHING SOMETHING
SOMETHING SOMETHING SOMETHING SOMETHING SOMETHING SOMETHING
SOMETHING SOMETHING SOMETHING
SOMETHING SOMETHING SOMETHING
3. SOMEHOW SOMEHOW
SOMEHOW SOMEHOW SOMEHOW SOMEHOW SOMEHOW 
4. SOMEWHERE SOMEWHERE SOMEWHERE SOMEWHERE 

如果支持负前瞻,则可以重复匹配所有不以1-2位数字、空格和字符a-zA-Z:开头的行

^d{1,2}.[ ][a-zA-Z].*(?:r?n(?!d{1,2}.[ ][a-zA-Z]).*)*

解释

  • ^字符串开始
  • d{1,2}.[ ][a-zA-Z].*匹配1-2位数字,.空格和一个字符a-zA-Z,后面跟行的其余部分
  • (?:非捕获组
    • r?n(?!d{1,2}.[ ][a-zA-Z])如果换行符不是以初始模式开始,则使用负前瞻匹配换行符和该行的其余部分
    • .*如果是这样的话,匹配整行
  • )*关闭组并重复0+次以获取所有行

Regex演示

相关内容

  • 没有找到相关文章

最新更新