Iphone RegexKitLite不匹配方括号
我正在尝试匹配文件中的用户名。有点像这样: 用户名=asd123密码123 等等 我正在使用正则表达式:Iphone RegexKitLite不匹配方括号,iphone,objective-c,regex,regexkitlite,Iphone,Objective C,Regex,Regexkitlite,我正在尝试匹配文件中的用户名。有点像这样: 用户名=asd123密码123 等等 我正在使用正则表达式: username=(.*) password 获取用户名。但如果用户名是say和[ers]或类似的,则不匹配。它与括号不匹配。有什么解决办法吗?您的正则表达式是正确的。相反,您可以尝试以下方法: username=([][[:alpha:]]*) password [][[:alpha:][/code>]表示]和[和[:alpha:][/code>包含在括号内。我可能会使用正则表达式:
username=(.*) password
获取用户名。但如果用户名是say和[ers]或类似的,则不匹配。它与括号不匹配。有什么解决办法吗?您的正则表达式是正确的。相反,您可以尝试以下方法:
username=([][[:alpha:]]*) password
[
][[:alpha:][/code>]表示]
和[
和[:alpha:][/code>包含在括号内。我可能会使用正则表达式:
username=(.*) password
username=([a-zA-Z0-9\[\]]+)密码
或类似的东西。关于这一点的注释:
- 转义括号可确保获得文字括号
a-zA-Z0-9
跨度匹配字母数字字符(根据您的示例,它是字母数字)。因此这将匹配任何字母数字字符或括号
+
修饰符确保您至少匹配一个字符。*
()将允许零重复,这意味着您将接受空字符串作为有效用户名
- 我不知道RegexKitLite是否允许POSIX类。如果允许,您可以使用
[:alnum://code>代替a-zA-Z0-9
。但是,如果不允许,我上面给出的应该可以使用
或者,我不允许在用户名中使用括号。在我看来,它们并不是真正需要的。如果我不知道它们会来,我怎么能避开它们呢?用户名是由用户输入的,所以我事先不知道它们是什么。不…[]是一个空字符类。这种方法不是错误…]
在[
在我的示例中被称为常规字符…因此[]
不被解释为[]
在我的正则表达式中,它不是一个空字符类。您可以在以下位置阅读更多信息:谢谢,我将对此进行研究。我不允许使用括号,这些用户名已经存在多年,括号一直被允许,不幸的是:(如果可能的话,您可能还想发布更多的代码。(.*)
表达式在这里不匹配似乎很不寻常,因此我肯定会检查您是如何解析文件并将字符串传递到正则表达式中的。当遇到括号时,可能是字符串本身的格式不正确。