正则表达式匹配点后的单词,直到出现空格

时间:2015-10-10 22:58:36

标签: regex

给出以下字符串

span.a.b this.is.really.confusing

我需要返回匹配ab。我已经能够接近以下正则表达式:

(?<=\.)[\w]+

但它也匹配isreallyconfusing。当我包含一个负向前瞻时,我会更接近,但我仍然不在那里。

(?<=\.)[\w]+(?=\s) # matches b, confusing

如何匹配点后的单词直到出现空格?

2 个答案:

答案 0 :(得分:0)

如何匹配点后的单词直到出现空格?
注意:这是语言无关的伪代码,但应该可以工作。

regex = "^[^\s.]+.(\S+).*"
targets = <extracted_group>.split(".")

正则表达式解释:
“^”:有生命的人 “[^ \ S。] +。” 1个或多个非空格,非句点字符,后跟句点 “(\ S +)”:分组并捕获以下所有非空格字符 “。*”:匹配任何非换行符的0或更多

如果split函数采用正则表达式而不是字符串,则需要转义'。'或使用角色类。

注意:您可以在没有拆分的情况下执行此操作,但我认为拆分更透明。

答案 1 :(得分:0)

我不确定这是否足以满足您所有可能的情况,但它应该与提供的示例一起使用:

\.([\w]+)\.([\w]+)\s

$ 1 = a,$ 2 = b