REGEX:构造涉及可选字符的正则表达式

时间:2014-12-17 09:41:29

标签: regex

我正在尝试使用以下模式构建正则表达式 1. abc 24 defZ
2. abc lmnZ
3. pqrZ

这里的想法是在该单词中提取Z之前的字符。 Z是常数字符,其余为随机字符。对于上面显示的例子,我需要以下
def lmn
3. pqr

我知道我可以使用正常的字符串操作,但重要的是这是正则表达式。 我的正则表达式是:

(\s*)?(.*)Z

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式,通过提前查看字符串末尾的Z来提取您想要的字符。

[a-zA-Z]+(?=Z$)

答案 1 :(得分:1)

使用\S匹配一个或多个非间隔符字符。

\S+(?=Z)

OR

这也匹配此Z字符串中foo Zbar之前存在的空字符串。

\S*(?=Z)

OR

使用捕获组。

(\S+)Z

DEMO

如果您只想提取字母,请使用

[a-zA-Z]+(?=Z)