正则表达式 - 分隔符之间的字符

时间:2014-08-12 11:16:14

标签: regex

我有以下URI

myapp://config/value?servers=https://192.168.251.1:8081&celldata=Y&https=Y&certificate=mylaptop.local:8080/certificate/clientcert.p12&certificatepassword=12345&allowgps=N

我想要一个很好的有效方法来提取查询字符串中的端口,并且我想在此过程中尝试学习一些Regex。

使用:(.*?)(,|&|/)几乎是理想的结果,但我不希望结果中的分隔符,只是文本之间的文本。

有人可以解释一下我能做些什么来实现这个目标吗?

注意:请为任何表达添加解释,因为我已经看到了大量类似的问题以及没有解释的答案。

编辑:

此处的预期结果是80818080作为提取端口的表达式。它将用C#编写,但编程语言无关紧要,因为表达式是全局的。

2 个答案:

答案 0 :(得分:1)

怎么样:

:(\d+)

这给出了:

: - 一个字面冒号

(\ d +) - \ d表示数字,+表示1或更多,括号用于分组(将所有数字组合在一起)

然后你必须从第一组获得值,索引1(不是0)

答案 1 :(得分:0)

我会这样做:

:(\d+)\b

,其中

\d代表任意数字一次或多次
\b代表字边界