2012-02-11 145 views
0

我不擅长正则表达式,无法找到解决此问题的简单方法。获取部分字符串

我有这样的表达式:

TR_NN_Expression

其中nn为一个数的2位数字,并表达可以包含“_”,所以我不能用于该用途的分裂。我想获得表达式。任何帮助将更大的赞赏。

+0

哇,我完全错过了苹果公司向Lion发布了一个正则表达式类。 – zneak 2012-02-11 00:30:34

+0

表达式总是会成为最后一个元素吗? – 2012-02-11 00:30:58

+0

是表达式是最后一个元素 – 2012-02-11 00:32:00

回答

3

您可以使用正则表达式:

TR_[0-9]{2}_(.*) 

你想将捕获组中的一部分。用法示例:

> s = 'TR_01_My#@34_Expresion' 
"TR_01_My#@34_Expresion" 
> s.match(/TR_[0-9]{2}_(.*)/)[1] 
"My#@34_Expresion" 
+0

你如何获得(。*)?是javascript让我说我有我的表达在 var my txt ='TR_01_My#@ 34_Expresion';. – 2012-02-11 00:43:52

+0

@FrenchiInLa:查看更新。 – 2012-02-11 00:50:04

+0

谢谢你这就是我要找的 – 2012-02-11 01:00:00

0

如果前缀长度是固定的,你知道的字符串是你可以使用substring来完成这个正确的格式。

"TR_42_some_expression_here".substring(6) // yields "some_expression_here" 

如果您有更复杂的情况,正则表达式可能是适当的。确切的表达取决于你想要捕捉什么。

+0

TR可以更长,所以我不能使用子字符串 – 2012-02-11 00:40:25

+0

@FrenchiInLa:你是什么意思“TR可以更长”?你能更具体地说明字符串的开头是什么吗? – 2012-02-11 00:44:24

+0

TR可以是AAAA,通常是2个字母,但可以比e个字母多 – 2012-02-11 00:49:29