- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个像这样的字符串:
?key=123%252Bf-34Fa&name=John
?name=Johon&key=123%252Bf-34Fa
key
的值,我使用此NSRegularExpression
(?i)(?<=key=)[.?!&]+[?=&]??
我认为该模式类似于匹配除“&”以外的任何字符。但是结果始终是
NULL
。
最佳答案
您不应该为此使用正则表达式,特别是如果您不知道如何使用正则表达式。相比:
NSString *string = @"?name=Johon&key=123%252Bf-34Fa";
// NSString *string = @"?key=123%252Bf-34Fa&name=John";
// one way
NSRange range = [string rangeOfString:@"key="];
if (range.location!=NSNotFound){
string = [string substringFromIndex:NSMaxRange(range)];
range = [string rangeOfString:@"&"];
if (range.location!=NSNotFound){
string = [string substringToIndex:range.location];
}
}
// another way
__block NSString *keyValue = nil;
[[string componentsSeparatedByString:@"&"] enumerateObjectsUsingBlock:^(id object, NSUInteger index, BOOL *stop){
NSRange range = [object rangeOfString:@"key="];
if (range.location!=NSNotFound){
keyValue = [object substringFromIndex:range.location+range.length];
*stop = YES;
}
}];
// regex way
NSString *regexStr = @"[\\?&]key=([^&#]*)";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexStr options:0 error:&error];
// enumerate all matches
if ((regex==nil) && (error!=nil)){
NSLog( @"Regex failed for url: %@, error was: %@", string, error);
} else {
[regex enumerateMatchesInString:string
options:0
range:NSMakeRange(0, [string length])
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop){
if (result!=nil){
// iterate ranges
for (int i=0; i<[result numberOfRanges]; i++) {
NSRange range = [result rangeAtIndex:i];
NSLog(@"%ld,%ld group #%d %@", range.location, range.length, i,
(range.length==0 ? @"--" : [string substringWithRange:range]));
}
}
}];
}
关于ios - NSRegularExpression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7442549/
我有一个像这样的字符串: ?key=123%252Bf-34Fa&name=John ?name=Johon&key=123%252Bf-34Fa 我想获取key的值,我使用此NSRegularExp
我曾使用 NSScanner 从下面的文本中检索数字。但有时结果并不像预期的那样。听说 iOS 4 可用的 NSRegularExpression 类更适合做这种类型的提取。由于我是 NSRegula
全部, 我有一本包含两个键和值的字典。我需要从它们中提取一些片段并将它们放入单独的字符串中。 { IP = "192.168.17.1"; desc = "VUWI-V
我想用 iPhone 的 NSRegularExpression 类解析此文本: Uploaded652.81 GB 用于摘录上传和652.81文本。 最佳答案 虽然我确实认为 xml 解析器更适合解
嗨,我遇到了问题,如果字符串中没有电话号码,并且 NSRegularExpression 找不到任何内容,则应用程序崩溃,但当它确实找到电话号码时,它在字符串中工作正常,没有任何问题。我怎样才能阻止它
我的代码看起来像 NSString *pattern = @"\\w+(\\w)"; NSRegularExpression *regex = [NSRegularExpression
我在理解使用 NSRegularExpression 获取捕获组时遇到了一些问题 let string = "QWERTY123 ASDFGH" let nsString = string as NS
我有一个正在 UIWebView 中显示的 HTML 字符串。有一些希腊文本,Unicode 范围 U+0370–U+03FF,我想通过将其括在跨度中以不同的字体显示。我可以搜索\p{script=G
我正在尝试更改字符的颜色和任何文本,我正在使用 NSRegularExpression 来获取字符,但我不知道如何更改以下字符,例如这是我的文本: ● Title...... some descrip
我正在编写一个通过 TCP 接收消息 block 的应用程序。消息 block 由以下部分组成: 固定 header <<:--!! 给出消息长度的 6 位数字 消息本身 使用 NSRegularEx
我知道 NSBackwardSearch 用于向后搜索字符串。 我的问题是,我可以通过 NSRegularExpression 进行相同的反向搜索吗? 如果是,请分享您的知识? 最佳答案 NSRegu
我想将 stringWithHashtags 中的每个单词添加到以 @ 和 # 开头的 attString 中.我认为最简单的方法是合并两个 NSRegularExpression 然后将其分配给数组
所以我正在开发一个 iPhone 应用程序,它拍摄一些文本的图片,图片经过 OCR 处理并发回给我,然后我使用正则表达式在字符串中搜索 double 值,最多可达xxxx.xx。 NSRegularE
我必须在 iOS 应用程序上动态替换 HTML 文件。 这与本地化有关。 在 HTML 文件中,我有类似这样的内容:LANG(183) 必须将其转换为“本地化字符串” 我正在查看 stringByre
我想使用NSRegularExpression获取html中的所有下载链接。 例如html内容是这样的: text info 我想得到这样的所有字符串: href="http://xxxx.com/f
我想让 TextView 中的匹配项为蓝色。 NSString *text = @"Except as contained in #wep this notice, the name of a cop
我使用 NSRegularExpression 来查找与特定模式匹配的内容,该模式在代码片段中可见: - (NSString *)functionPattern { return @"[A-Z
我正在尝试编写一个函数,它有一个 NSString 并解析它返回一个标签数组。 标签的定义是任何以# 开头并且在# 之后仅包含字母数字字符的 nsstring 文本。 这是正确的吗? #.*?[A-Z
我有以下网址: https://api.instagram.com/v1/tags/picoftheday/media/recent?access_token=29088696%2Efd3325f%2
您好,我在 NSRegularExpressions 中使用正则表达式的非捕获组功能时遇到问题 下面是一些捕获匹配的代码: func matches(for regex: String, in tex
我是一名优秀的程序员,十分优秀!