正则表达式到组数据

问题描述:

我期待提取使用正则表达式的数据 - 实施例::正则表达式到组数据

http://www.test.com/?name=A_B_C_D_E_F&gclid=something

http://www.test.com/?name=A_B_C_D_E_F

我想以提取下一个4个字以下name=A_

所以期望的输出是 -

B 
C 
D 
E 

我期待使用反向引用即

$1将返回B$2将返回C $3将返回D$4将提前返回E

非常感谢提取这些值。

+1

用正则表达式,它有助于解释你所使用的语言从正则表达式。 C,C++,C#,Perl,Python,PHP,Java,Ruby的答案有很多共同之处,而且细节上有很多不同之处。 – 2013-03-11 17:45:46

(?:\?|&)name=A(_[^_&]+)(_[^_&]+)(_[^_&]+)(_[^_&]+) 
+0

谢谢。我编辑了我的问题以表明&符号并不总是强制性的。 – 2013-03-11 17:16:27

+0

@thinking_hydrogen - 我想你可能误解了。一开始,我说可以有一个问号或一个&符号。在剩下的时间里,我正在寻找非'_'和非'''由下划线分隔的字符串。例如,我不知道在你的“单词”中是否可以接受“%20”(在URL中常见)。换句话说,我的表情中的搭配与跟随是否有&符号无关。我只是说,如果遇到&,正则表达式应该“退出”,例如,在找到四个单词之前。 – 2013-03-11 17:36:38

这应该给您预期的结果:

(?<=name=A_)([^\_]+)_([^\_]+)_([^\_]+)_([^\_]+)

http://regex101.com/r/xO1oE8

+0

谢谢,我得到了序列未被识别的错误? 2013-03-11 17:15:41

+0

您使用哪种语言来处理字符串? ' 2013-03-11 17:26:33

+0

或者有可能正则表达式语言不支持积极的后台处理。 – 2013-03-11 17:48:39