我有以下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。
使用:(.*?)(,|&|/)
几乎是理想的结果,但我不希望结果中的分隔符,只是文本之间的文本。
有人可以解释一下我能做些什么来实现这个目标吗?
注意:请为任何表达添加解释,因为我已经看到了大量类似的问题以及没有解释的答案。
编辑:
此处的预期结果是8081
和8080
作为提取端口的表达式。它将用C#编写,但编程语言无关紧要,因为表达式是全局的。
答案 0 :(得分:1)
怎么样:
:(\d+)
这给出了:
: - 一个字面冒号
(\ d +) - \ d表示数字,+表示1或更多,括号用于分组(将所有数字组合在一起)
然后你必须从第一组获得值,索引1(不是0)
答案 1 :(得分:0)
我会这样做:
:(\d+)\b
,其中
\d
代表任意数字一次或多次
\b
代表字边界