使用正则表达式提取文本分组内容失败,求正确正则写法
解决方案
正确正则表达式
^(.+?)\s(?:cx\.)?([a-z]+)(?:\s(\d{5}))?$
正则规则说明
^(.+?):非贪婪匹配行首到水果名前的全部内容,对应Group1\s:匹配水果名前的空格分隔符(?:cx\.)?:非捕获可选分组,匹配可选的cx.前缀(不纳入分组结果)([a-z]+):匹配纯字母的水果名称,对应Group2(?:\s(\d{5}))?$:非捕获可选分组,匹配行尾可选的5位数字,数字部分对应Group3(无数字时为空)
匹配结果验证
对应你的输入文本,提取结果完全符合预期:
| Group1 | Group2 | Group3 |
|---|---|---|
| 9/91 a1 2a | papaya | 94000 |
| 9/92 b2 3a x44b | mango | 10220 |
| 9/93 3 3a x333 | pineapple | |
| 9/94 x4 | apple | 94000 |
| 9/95 5 55 cyz | orange |
内容的提问来源于stack exchange,提问作者JCChan Chan JC
相关产品推荐
相关产品推荐

