2

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

用户名=asd123 密码123

等等。

我正在使用正则表达式:

username=(.*) password

获取用户名。但如果用户名是 say and[ers] 或类似名称,则不匹配。它不会匹配括号。有什么解决办法吗?

4

2 回答 2

1

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

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

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

于 2010-08-12T01:08:49.753 回答
1

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

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

或类似的东西。关于此的注释:

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

或者,我不允许在用户名中使用括号。他们并不是真正需要的,IMO。

于 2010-08-12T01:31:58.857 回答