我正在尝试匹配文件中的用户名。有点像这样:
用户名=asd123 密码123
等等。
我正在使用正则表达式:
username=(.*) password
获取用户名。但如果用户名是 say and[ers] 或类似名称,则不匹配。它不会匹配括号。有什么解决办法吗?
我正在尝试匹配文件中的用户名。有点像这样:
用户名=asd123 密码123
等等。
我正在使用正则表达式:
username=(.*) password
获取用户名。但如果用户名是 say and[ers] 或类似名称,则不匹配。它不会匹配括号。有什么解决办法吗?
您的正则表达式是正确的。相反,你可以试试这个:
username=([][[:alpha:]]*) password
[ ][[:alpha:]
]表示]
并且包含在括号内[
。[:alpha:]
我可能会使用正则表达式:
username=([a-zA-Z0-9\[\]]+) password
或类似的东西。关于此的注释:
a-zA-Z0-9
跨度匹配字母数字字符(根据您的示例,它是 alphanumerc)。所以这将匹配任何字母数字字符或括号。+
修饰符确保您匹配至少一个字符。( Kleene star*
)将允许零重复,这意味着您将接受一个空字符串作为有效的用户名。[:alnum:]
代替a-zA-Z0-9
. 但是,如果没有,我上面给出的那个应该可以工作。或者,我不允许在用户名中使用括号。他们并不是真正需要的,IMO。