regex
  • perl
  • 2013-03-06 67 views 0 likes 
    0

    假设:鸡蛋正则表达式

    my $s1='A "sentence" ... is a concatination of nondelimiters followed by delimiters, 
         followed by nondelimiters, followed by delimiters, ...'; 
    

    my $s2='"A "sentence" ... is a concatination of delimiters followed by nondelimiters, 
         followed by delimiters, followed by nondelimiters, ..."'; 
    

    我试图通过正则表达式来分割到一个列表@a使用的分隔符标量$ d设置:

    my $d = ' ,."'; # delimiter set 
    my @a = $s1 =~ /([^$d]+)([$d]+)/g; # gives |A| "|sentence|" ... |is| |a| |... 
    

    在第二种情况下,句子可以使用

    my @a = $s2 =~ /([$d]+)([^$d]+)/g; # gives |"|A| "|sentence|" ... |is| |a|... 
    

    如何处理这两个案件与一个正则表达式?需要帮助 - 请。

    +0

    这不起作用: 我@a = $ S =〜/([^ $ d] +)([$ d] +)|([$ d] +)([^ $ d] +)/克; – bootware 2013-03-06 22:59:22

    回答

    1

    您需要连续的分隔符或非限定符。只需使用

    $s =~ /([$d]+|[^$d]+)/g; 
    
    +0

    伟大的是我所寻找的 - 它工作得很好。谢谢@choroba。 – bootware 2013-03-06 23:50:59

    相关问题