【发布时间】:2012-06-19 12:42:05
【问题描述】:
我需要从这个字符串中提取值:
urlTest?paramA=valueA¶mB=valueB
所以,我是这样想的:
urlTest?paramA=(.*)¶mB=(.*)
但是,在某些情况下,我没有 paramB,或者,在某些情况下,我在 params 值中有 '&' 和 '='。
我该如何解决这个问题?
【问题讨论】:
-
参数值中不应包含
&或=。正确编码的 url 将使用%26和%3D -
您使用的是什么编程语言?大多数都具有解析 URL 查询字符串的本机能力。
-
这不是一个常见的 URL,所以很遗憾,我不能使用转义字符(%26 和 %3D)。我正在为 iOS (Objective-C) 编程,但如果有人帮助我使用其他语言的正则表达式,我会很高兴 =)。我正在使用它与某些屏幕进行交互。一个疯狂的项目哈哈哈就像一个命令:
doSomething?withThis=aaa&andThis=bbb -
传统上,首先在 & 上拆分字符串,然后在 = 上拆分每个子字符串,但如果您的值中有 & 和 =,这很棘手。你能发布一些你需要解析的字符串的例子吗?
-
很遗憾,这个应用程序的设计不是我的。事情有点“混乱”。转义内容值并执行
for匹配每对,或使用&和=拆分字符串解决问题。但是,在我的场景中,我没有这种可能性。这是我无法控制的。我正在修复遗留代码。示例:commandRun?withAtributes=valueA&withAltAtributes=valueBvalueA 可以是如下值:commandStop?stopTime=321&delay=321
标签: objective-c ios regex regex-group