正则表达式如何匹配以某个字符结尾但不选择最后一个字符的单词?

时间:2018-01-15 00:59:20

标签: regex

我试图捕捉以[u]结尾但不选择最后一个字符的单词。 我的目标结果的例子是:

目标结果

Original Word -> Capture Group-> Select Only
Grāveru pagasts -> Grāveru -> Grāver
Balvu novads -> Balvu -> Balv

我目前的做法

(.*)(?<=u)\spagasts which will capture Grāveru (.*)(?<=u)\snovads which will capture Balvu

enter image description here

我的目标结果是没有最后一个角色的单词(Grāver)但我在这个阶段陷入困境,有人有任何想法吗?

2 个答案:

答案 0 :(得分:1)

(.+)(?=[u]\b)

(?<=[u]):向后看, (?=[u]):Lookahead

\b匹配单词结尾

编辑: 如果只需要匹配单词,则应更新为:(\S+)(?=[u]\b)

答案 1 :(得分:0)

使用正向前瞻。

\p{L}+(?=u\b)

\S+(?=u\b)

DEMO