代码之家  ›  专栏  ›  技术社区  ›  Jonathan Sterling

带@符号的regex不工作

  •  0
  • Jonathan Sterling  · 技术社区  · 16 年前

    我正在iPhone项目中使用regexkitlite,希望使用regex查找以 @ -标志。例如, "@home @chores" 搜索时,将返回两个单词。

    我使用的regex字符串是 "(?m-s:@.*\\s*)" . 但当我用这个的时候,我会撞车。当我用同样的东西,但用 # 而不是 @ 它工作得很好:“ (?m-s:#.*\\s*)" . 世界跆拳道联盟?

    如果有人能更好地理解正则表达式,我会非常感激。到目前为止,我所看到的教程几乎让我无法理解。

    4 回复  |  直到 14 年前
        1
  •  2
  •   Kyle Walsh    16 年前

    我修改了马努的想法,只是在regex中切换了@的位置。

    /(@\b\w+)/
    

    我用“@foo@bar@baz@lol”在一个字符串上测试了它,它看起来像是在匹配单词并用parens捕获它们时所做的。

        2
  •  0
  •   RaYell    16 年前

    你试过这样的方法吗?

    NSString *search = @"This is my @home string with @some tokens to be @found";
    NSString *regex = @"\\b@(\\w+)";
    NSArray  *matches = NULL;
    
    matches = [search componentsMatchedByRegex:regex];
    // now matches should have { @"home", @"some", @"found" } values
    

    我没有测试过,但应该可以工作。

        3
  •  0
  •   Powerlord    16 年前

    这听起来可能太简单了,但你试过改变吗? @ \@ \\@

        4
  •  0
  •   Jonathan Sterling    14 年前

    为什么不简单地使用 /\b@\w+/ ?