正则表达式以获取字母或包含空格的最后一个数字的字母

问题描述

我有以下字符串:

Hyderabad RTC K1 1991-1998
Hyderabad RTC KK 1876-1897
Al Test K5 1876-9876

因此,我只想从上面的字符串中获得数字以外的第一部分,例如:

Hyderabad RTC K1
Hyderabad RTC KK
Al Test K5

我已经尝试过此^[a-z]*([0-9] )?$ RegEx,认为不会有任何字符,后跟数字和空格。

解决方法

您可以使用一个捕获组来匹配任意数量的以LetterNumber或两个字母结尾的单词,后跟数字-数字部分:

^([A-Za-z]+\d*(?: [A-Za-z]+\d*)+) \d+-\d+$

Regex demo

不需要匹配末尾用连字符分隔的数字,您可以省略捕获组和最后一部分:

^[A-Za-z]+\d*(?: [A-Za-z]+\d*)*

Regex demo