【问题标题】:Regex: how to separate username:password?正则表达式:如何分隔用户名:密码?
【发布时间】:2015-08-22 06:26:55
【问题描述】:

正则表达式:如何分隔用户名:密码? 我需要一个代码来分隔 2 个不同的列表用户名和密码

john:123
place:Abc457

等等

最终名单:

john
place

等等

和第二个 list.txt

123
Abc457

等等

我更喜欢密码而不是用户名,谢谢

【问题讨论】:

  • 什么语言?为什么使用正则表达式?只需在:拆分 ...
  • 什么语言?为什么不直接使用文本分割功能?
  • 您使用哪种语言?
  • 为什么在 SO 上还会有人问这个问题? www.上的语法和用法有数千个答案。这不是问题。我假设题外话? stackoverflow.com/help/how-to-ask

标签: regex


【解决方案1】:

根据您的不需要忽略用户名,但修改以下示例以保留它是微不足道的。下面的示例显示了 Python 和 Perl 的正则表达式提取和拆分操作。

Python 正则表达式:

>>> import re
>>> s = "john:123"
>>> pw = []
>>> pw.append(re.match(r'.*?:(.*)', s).group(1))
>>> pw
['123']

Perl 正则表达式:

my $s = "john:123";
my @a;

$s =~ /.*?:(.*)/;
push @a, $1 if $1;

print @a;

Python 拆分:

>>> s = "john:123"
>>> pw = []
>>> pw.append(s.split(':')[1])
>>> pw
['123']

Perl 拆分:

my $s = "john:123";
my @a;

push @a, (split(/:/, $s))[1];

print @a;

【讨论】:

    【解决方案2】:

    我会使用(.*?):(.*)。然后您可以将用户名作为第 1 组访问($1 替换)和密码作为第 2 组。

    要创建您的第一个文本文件,请使用$1 (http://regexr.com/3b8as)

    john
    place
    

    要创建第二个文本文件,请使用 $2 (http://regexr.com/3b8av)

    123
    Abc457
    

    【讨论】:

    • @MunteanCosminManim 我更新了我的答案(另请参阅示例链接)。现在可以用了吗?
    猜你喜欢
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多