2012-09-28 33 views
3

我得到了下面的字符串来提取一些信息:任何建议为什么我的正则表达式不起作用?

String: String: String Number; 

现在,我使用下面的正则表达式来获取参数:

(.*?):(.*?):(.*?);$ 

这样,我将与匹配器获得以下输出:

group(1) = String 
group(2) = String 
group(3) = String Number 

如果我想我需要在第三组的输出上执行另一个正则表达式,如下所示:

([a-zA-Z]* ?([0-9])?$) 

用于ONT字符串String Number这会给我和输出像

group(1) = String 
group(2) = Number 

我想到组合这两个步骤,对String: String: String Number; -STRING使用正则表达式像(.*?):(.*?):([a-zA-Z]* ?([0-9])?);$。但这不起作用,我看不出原因。

+0

为什么你周围的字符串和第三支架数?它不应该只是字符串? –

回答

3

Hwere你走了,我增加了一些额外的空格匹配,但是这似乎工作,你错过了第二之间的空白:下列字符串和

^(.*?):\s*(.*?):\s*([a-zA-Z]*\s+([0-9])?);$ 
+0

好吧:)谢谢你。我改变了一点,以适应我的代码。 '^(。*?):\\ s *(。*?):\\ s *([a-zA-Z] *)\\ s +([0-9])?; $'组(3)中的字符串和组(4)中的数字。 – Ogofo

相关问题