NS正则表达式
我有一个像这样的字符串:
?key=123%252Bf-34Fa&name=John
?name=Johon&key=123%252Bf-34Fa
我想获取key
的值,我使用这个 NSRegularExpression <代码> (?i)(?<=key=)[.?!&]+[?=&]?? 我认为该模式就像匹配除“&”之外的任何字符。但结果始终为NULL
。
每个键的值可以是除“&”之外的任何值。 那么如何创建正确的 NSRegularExpression 呢? 谢谢。
I have a string like:
?key=123%252Bf-34Fa&name=John
?name=Johon&key=123%252Bf-34Fa
I want to get the value for the key
,I use this NSRegularExpression
(?i)(?<=key=)[.?!&]+[?=&]??
What I think is that the pattern is like matching any character except "&".But the result is always NULL
.
the value of each key can have anything except "&".
So How can I create the correct NSRegularExpression?
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不应该为此使用正则表达式,特别是如果您不知道如何使用。比较:
You shouldn't use a regex for this, specially if you don't know how. Compare:
我知道答案发布已经好几年了,但是虽然 Jano 答案中的代码在技术上是正确的,但多次调用
rangeOfString
效率非常低。正则表达式实际上非常简单。您可以执行以下两项操作之一:
Objective-C 中使用
NSRegularExpression
的代码将如下所示:或如下所示:
请注意,在使用正则表达式时,使用双反斜杠 (\\) 来转义反斜杠实际代码。
I know it's been years since the answer was posted, but while the code in Jano's answer is technically correct, calling
rangeOfString
multiple time is very inefficient.The regex is actually quite simple. You can do one of the two following:
The code in Objective-C using
NSRegularExpression
would look like this:or like this:
Note the double backslash (\\) to escape the backslash when using the regex in actual code.