使用正则表达式选择一段话的最后 5 个单词

使用正则表达式选择一段话的最后 5 个单词

我想匹配文档中每个段落的最后 5 个单词。我正在使用 Notepad++ 和 Adob​​e InDesign GREP

样本数据

在这里,您可以找到练习阅读技巧的活动。阅读将帮助您提高对语言的理解并积累词汇量。

本部分的自学课程是根据欧洲语言共同参考标准 (CEFR) 编写并按英语水平组织的。课程中有不同类型的课文和互动练习,可以练习您在学习、工作中取得进步以及在闲暇时间用英语交流所需的阅读技能。

参加我们的免费在线英语测试,了解您应选择哪个级别。从 A1 英语级别(初级)到 C1 英语级别(高级),选择您的级别,并在您方便的时候按照自己的速度提高阅读技能。

我编写了此代码,它仅选择最后一个单词。即使我将 5 改为 3,它仍然仅选择最后一个单词。

(\H*){5}(?=$)

答案1

首先,让我们解释一下你的正则表达式:

  • (\H*){5}匹配 5 次 0 个或更多非水平空格,它匹配至少 0 个或 5 个或更多字符长的单个单词。
  • (?=$)没有意义,你想用$,这就足够了。

您应该使用的正则表达式是:(?:\h\H+){5}$

  • (?:\h\H+){5}# 1 个水平空格后跟 1 个或多个非水平空格,必须出现 5 次
  • $ # 行结束

如果不想匹配第一个单词前的空格,请使用:

(?:\H+\h){4}\H+$

相关内容