使用正则表达式将多个文本分组到组

时间:2014-12-04 20:49:18

标签: regex xml

我正在尝试提出一个分组和解析多个场景的正则表达式。

我在调用regexp时使用的是XML。

<field name="access_device" count="17" delimiter="{_csv_}" edit="re=(\w+\---\w+)\S+|(\w+\_\d+)|(\w+)\d\S+|(\w+\-\w+)\S+"case="upper" allow-blank="yes" />

我想出这个正则表达式它几乎可以工作,但它省略了我要解析的组的最后一个字符。在这个正则表达式中我有4个我想要解析的组。

Group1           Group2     Group3     Group4
(\w+\---\w+)\S+|(\w+\_\d+)|(\w+)\d\S+|(\w+\-\w+)\S+

我从下面的客户收到的文字:

Future_7330
Future_7340
SNANTXWA010153021-76.200.41.6-MULTI AND MGT
SNAZTXSI01HUT1011-76.200.41.30-Unicast
SNANTXW010153021-76.200.41.6-UNICAST
IPDSLAM-HXC101260-71-71.149.53.62
CHVWTXGT---01CAB101A-71.149.53.58
ATASTXADOL0010BAY111-71.149.52.41-MULTI AND MGT 

文字我只希望我的正则表达式在下面进行解析:这与regexp group3 (\w+)\d\S+的一部分有关,如果我删除它\d它有效但是混乱了Group4 (\w+\-\w+)\S+并且如果影响文字IPDSLAM-HXC101260只会在仅提供IPDSLAM

的短划线后忽略
Future_7330
Future_7340
SNANTXWA010153021     <-- not working correctly (it omit the last digit)
SNAZTXSI01HUT1011     <-- not working correctly (it omit the last digit)
SNANTXW010153021      <-- not working correctly (it omit the last digit)
IPDSLAM-HXC101260
CHVWTXGT---01CAB101A
ATASTXADOL0010BAY111   <-- not working correctly (it omit the last digit)

我正在使用此regexr网站来测试我的正则表达式

1 个答案:

答案 0 :(得分:0)

尝试使用前瞻性的一个:

^(\w+---\w+|\w+-\w+|\w+)(?=[-\n])