我尝试删除括号内的部分字符串。
例如,对于字符串"(This should be removed) and only this part should remain"
,在使用NSRegularExpression之后,它应该变为"and only this part should remain"
。
我有这段代码,但没有任何反应。我用RegExr.com测试了我的正则表达式代码,它运行正常。我将不胜感激任何帮助。
NSString *phraseLabelWithBrackets = @"(test text) 1 2 3 text test";
NSError *error = NULL;
NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"/\\(([^\\)]+)\\)/g" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *phraseLabelWithoutBrackets = [regexp stringByReplacingMatchesInString:phraseLabelWithBrackets options:0 range:NSMakeRange(0, [phraseLabelWithBrackets length]) withTemplate:@""];
NSLog(phraseLabelWithoutBrackets);
答案 0 :(得分:6)
删除正则表达式分隔符,并确保在字符类中也排除(
:
NSString *phraseLabelWithBrackets = @"(test text) 1 2 3 text test";
NSError *error = NULL;
NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"\\([^()]+\\)" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *phraseLabelWithoutBrackets = [regexp stringByReplacingMatchesInString:phraseLabelWithBrackets options:0 range:NSMakeRange(0, [phraseLabelWithBrackets length]) withTemplate:@""];
NSLog(phraseLabelWithoutBrackets);
请参阅此IDEONE demo和a regex demo。
\([^()]+\)
模式将匹配
\(
- 一个左括号[^()]+
- 除(
和)
以外的1个或多个字符(将+
更改为*
以匹配并删除空括号{{1} })()
- 右括号