用于从逗号分隔的字母数字文本中提取字符串的正则表达式

时间:2014-10-24 14:34:18

标签: regex

我有一个如下字符串:

http://www.example.com?abc=0,5,ABCD,10&pq=5.1&rs=w.t.f

我想编写一个正则表达式来从中提取ABCD部分。

到目前为止,我已经能够获得此正则表达式:.*(abc=[^&]*).*

它给了我:abc=0,5,ABCD,10

但我只需要ABCD作为正则表达式的输出。

需要帮助。

4 个答案:

答案 0 :(得分:0)

假设abc=0,5,ABCD,10 始终 4个以逗号分隔的字段,您可以使用此字段:abc=.*,.*,(.*),

请参阅说明和演示here

捕获组将获得第三个字段。

但我非常确定用您使用的语言有更好的方法来实现这一目标...

答案 1 :(得分:0)

你可以使用;

(?:[^=])(.+?\,){3}

http://regex101.com/r/qO4aX0/4

答案 2 :(得分:0)

怎么样。

(?<=\d,)[^,]+(?=,\d)

请参阅演示:http://regex101.com/r/iD5yV4/1

答案 3 :(得分:0)

使用以下正则表达式并从组索引1中获取所需的字符串。

abc=.*?,([^,]*),[^,&]*&

DEMO

abc=.*?,\K[^,]*(?=,[^,&]*&)

DEMO