RegexKitLite不匹配方括号

时间:2010-08-12 00:11:20

标签: iphone objective-c regex regexkitlite

我正在尝试匹配文件中的用户名。它有点像这样:

username = asd123 password123

等等。

我正在使用正则表达式:

username=(.*) password

获取用户名。但如果用户名是和[ers]或类似的话,它就不匹配。它与括号不匹配。对此有何解决方案?

2 个答案:

答案 0 :(得分:1)

您的正则表达式是正确的。相反,你可以尝试这个:

username=([][[:alpha:]]*) password

[ ][[:alpha:] ] 表示][[:alpha:]包含在括号内。

答案 1 :(得分:1)

我可能会使用正则表达式:

username=([a-zA-Z0-9\[\]]+) password

或类似的东西。有关这方面的说明:

  • 转义括号可确保您获得文字括号。
  • a-zA-Z0-9跨度匹配字母数字字符(根据您的示例,即alphanumerc)。因此,这将匹配任何字母数字字符或括号。
  • +修饰符可确保您匹配至少一个字符*Kleene star)将允许重复,这意味着您将接受空字符串作为有效用户名。
  • 我不知道RegexKitLite是否允许POSIX类。如果是,您可以使用[:alnum:]代替a-zA-Z0-9。如果没有,我上面给出的那个应该可以工作。

或者,我会禁止在用户名中使用括号。他们并不是真的需要,IMO。