gpt4 book ai didi

ios - NSRegularExpression-如何匹配可能带有括号,方括号等的文本

转载 作者:行者123 更新时间:2023-12-01 18:14:12 25 4
gpt4 key购买 nike

我有可能在其中带有括号,方括号的文本以及具有相同文本的子字符串。如何通过正则表达式使这些文本匹配,但不区分大小写?

NSError* error = nil;
NSString* text = @"Hello (extreme elevation) - some longer string";
NSString* obj = @"hello (extreme elevation)";
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:obj
options:NSRegularExpressionCaseInsensitive
error:&error];
NSArray* matches = [regex matchesInString:text
options:0
range:NSMakeRange(0, text.length)];

这不匹配任何内容,即使Obj的首字母大写也不会通过正则表达式匹配,但会通过NSString rangeOfString匹配。在这种情况下以及其他可能带有方括号的情况下,我希望能够将obj与文本匹配,例如:
NSString* text = @"Hello [extreme elevation]";
NSString* obj = @"hello [extreme elevation]";

最佳答案

在正则表达式的上下文中,括号,方括号,星号,加号和其他类似字符称为元字符。为了匹配它们,您需要

  • 用反斜杠或
  • 进行转义
  • 将它们用方括号括起来。

  • 回想一下,反斜杠也是由Objective-C编译器解释的,因此,如果将表达式放在字符串文字中,则需要将反斜杠加倍,如下所示:
    NSString* obj = @"hello \\(extreme elevation\\)";

    方括号方法也可以在这里工作:
    NSString* obj = @"hello [(]extreme elevation[)]";

    (它适用于除方括号外的所有元字符,方括号需要用反斜杠转义):
    NSString* obj = @"hello \\[extreme elevation\\]";

    关于ios - NSRegularExpression-如何匹配可能带有括号,方括号等的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24297584/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com