【问题标题】:Why tag '.' doesn't work in NSRegularExpression为什么要标记“。”在 NSRegularExpression 中不起作用
【发布时间】:2013-04-21 06:54:55
【问题描述】:

我有这个字符串:

NSString* yourString = @"(;GM[1]FF[4]SZ[19]AP[CGoban Pro:2.2]PW[Michael Redmond]WR[9p]DT[2010-12-12]KM[6.5]RE[B+0.5]AN[Michael Redmond]BK[1]C[toto : [test]]";

我有这个正则表达式:

NSRegularExpression* regex = [NSRegularExpression
                              regularExpressionWithPattern:@"((RU)|(KM)|(TM)|(OT)|(PW)|(PB)|(WR)|(BR)|(WR)|(DT)|(RE))\\[[\\w ]+\\]"
                              options:NSRegularExpressionCaseInsensitive
                              error:&error];

我不能用 \w 和 \ 获得数值。或仅 .什么都不退! 谁能帮帮我?

谢谢

【问题讨论】:

  • 您期望的结果是什么,您实际得到了什么?此外,如果您展示了如何使用正则表达式对象,那将会很有帮助。
  • 为我工作。我得到匹配“PW[Michael Redmond]”和“WR[9p]”。您是否还尝试捕获“KM[6.5]”或“DT[2010-12-12]”?
  • 是的。我有带有 \\w 的常规文本,但我没有 6.5 或 2010-12-12。我怎样才能得到所有这些?

标签: objective-c regex nsstring numeric nsregularexpression


【解决方案1】:

试试\\[[-+. \\w]+\\]。这将匹配字母、数字、空格、加号、减号和句点。请注意,- 必须放在首位,因为中间的 - 表示像 [a-z] 这样的范围。

或者,如果您只想匹配方括号内的任何内容而不关心它实际上是什么,请尝试\\[[^]]+\\]。这将匹配[,然后匹配任何不是],然后是]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多