我想匹配文档中每个段落的最后 5 个单词。我正在使用 Notepad++ 和 Adobe 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+$