首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegexKitLite与NSString不匹配

RegexKitLite与NSString不匹配
EN

Stack Overflow用户
提问于 2011-11-06 19:06:48
回答 1查看 127关注 0票数 0

好的,我正在尝试编写一些代码,从NSString中删除包含撇号的单词。为此,我决定使用正则表达式,并编写了一个使用这个网站进行测试的表达式:http://rubular.com/r/YTV90BcgoQ

在这里,表达式是:\S*'+\S

如网站所示,包含撇号的单词是匹配的。但出于某种原因,在我编写的应用程序中,使用了以下代码:

代码语言:javascript
复制
    sourceString = [sourceString stringByReplacingOccurrencesOfRegex:@"\S*'+\S" withString:@""];

不会返回任何正面的结果。通过NSLogging 'sourceString',我注意到输出中仍然存在‘不要’和‘Don’这样的单词。

我的表达式似乎不是问题所在,但也许RegexKitLite不接受某些类型的表达式?如果有人知道这里发生了什么,请告诉我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-06 19:42:13

文字NSString使用\作为转义字符,这样就可以将换行符\n之类的内容放入其中。Regexes还使用反斜杠作为字符类(如\S )的转义字符。当您的文本字符串在编译器中运行时,反斜杠将被视为转义字符,而不是将其转换为regex模式。

因此,您需要在文本NSString中转义反斜杠本身,以便在用作模式:@"\\S*'+\\S"的字符串中以反斜杠结束。

你应该看到一个关于“未知转义序列”的编译器警告--不要忽视那些警告!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8029594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档