我正在尝试匹配文件中的用户名。有点像这样:
username=asd123 password123
诸若此类。
我使用的是正则表达式:
username=(.*) password来获取用户名。但如果用户名是anders或类似的,则不匹配。它不会和括号匹配。有什么解决方案吗?
发布于 2010-08-12 09:31:59
我可能会使用正则表达式:
username=([a-zA-Z0-9\[\]]+) password
或者类似的东西。关于这一点的说明:
对括号进行转义可确保您获得文字括号。
a-zA-Z0-9跨度匹配字母数字字符(如您的示例所示,即字母数字)。因此,这将匹配任何字母数字字符或方括号。
+修饰符确保您至少匹配一个字符。* (Kleene star)将允许零重复,这意味着您将接受空字符串作为有效的用户名。
[:alnum:]代替a-zA-Z0-9。不过,我在上面给出的方法应该可以在不起作用的情况下运行。或者,我不允许在用户名中使用括号。他们不是真的需要,国际海事组织。
发布于 2010-08-12 09:08:50
您的正则表达式是正确的。相反,您可以尝试以下方法:
username=([][[:alpha:]]*) password[][[:alpha:]]表示括号中包含]、[和[:alpha:]。
https://stackoverflow.com/questions/3463822
复制相似问题