我需要正则表达式来解析文本中的项目。
数据结构是:
我正在使用这个正则表达式:
.*\n(.+) (AA|BB|CC|DD|EE|[, ]+){0,6}(\d+).*
使用此文本字符串:
Sveiki,
I need these items:
1508-dkh-ą9 AA, BB 100
1efae 468 BB, CC 100
2efae 468 BB 100
3efae 468 100
Ačiū už dėmesį ir skirtą laiką!
返回
<row>
<ID>0</ID>
<Match>1508-dkh-Ä…9 AA, BB 100</Match>
<Group1>1508-dkh-Ä…9 AA, BB</Group1>
<Group2></Group2>
<Group3>100</Group3>
</row>
<row>
<ID>1</ID>
<Match>1efae 468 BB, CC 100</Match>
<Group1>1efae 468 BB, CC</Group1>
<Group2></Group2>
<Group3>100</Group3>
</row>
<row>
<ID>2</ID>
<Match>2efae 468 BB 100</Match>
<Group1>2efae 468 BB</Group1>
<Group2></Group2>
<Group3>100</Group3>
</row>
<row>
<ID>3</ID>
<Match>3efae 468 100</Match>
<Group1>3efae 468</Group1>
<Group2></Group2>
<Group3>100</Group3>
</row>
我需要这样的结果
<row>
<ID>0</ID>
<Match>1508-dkh-Ä…9 AA, BB 100</Match>
<Group1>1508-dkh-Ä…9</Group1>
<Group2>AA, BB</Group2>
<Group3>100</Group3>
</row>
....
我怎样才能达到这个效果? (也许有比正则表达式更好的解决方案?)
答案 0 :(得分:1)
试试这个(根据您使用的语言,您可能需要稍微修改一下)
^(.+?)([AA|BB|CC|DD|EE, ]*) ([0-9]+)$
第一组中的问号会使其变得懒惰,这也会阻止它与您的可选标记匹配。
处试试答案 1 :(得分:1)
以下正则表达式适用于问题
上发布的示例^(.+?) ((?:AA|BB|CC|DD|EE|[, ]+){0,6})(\d+)$