我需要你的帮助,因为我已经尝试了几种方法来创建一个可以按组获得的正则表达式,但是我遇到了一个我不知道如何考虑的变量:
字数:
589011 T CANNELLE FLAVOR 8
538160 TP0597C ORANGE FLAVOR
557137 APL0397C STRAWBERRY FLAVOR
556137 APL0397C STRAWBERRY FLAVOR
545129 1APL0397C MANGO FLAVOR
984320 TRANS DECENAL
533160 TP0597C ORANGE FLAVOR
530373 A PINEAPPLE FLAVOR
059311 A STRAWBERRY FLAVOR
508142 T LEMON FLAVOR
547261 A BLACKBERRY FLAVOR
536564 2T BLUEBERRY STRAWBERRY
055406 A MILK FLAVOR
054945 A BLACKBERRY FLAVOR
983347 SUSTANE
902040 ACETIC ACID
字符串
第一组:
589011 T
538160 TP0597C
557137 APL0397C
556137 APL0397C
545129 1APL0397C
984320
533160 TP0597C
530373 A
059311 A
508142 T
547261 A
536564 2T
055406 A
054945 A
983347
902040
型
第二组:
CANNELLE FLAVOR
ORANGE FLAVOR
STRAWBERRY FLAVOR
STRAWBERRY FLAVOR
MANGO FLAVOR
TRANS DECENAL
ORANGE FLAVOR
PINEAPPLE FLAVOR
STRAWBERRY FLAVOR
LEMON FLAVOR
BLACKBERRY FLAVOR
BLUEBERRY STRAWBERRY
MILK FLAVOR
BLACKBERRY FLAVOR
SUSTANE
ACETIC ACID
型
Regex测试:
1.第一个月
^([0-9\s]+(?:[A-Z0-9]+)?)\s(?:[A-Z\s]+)
个
我对这两个词的困难在于,群体应该是这样的:
988320 TRANS DECENAL 1 KGM 12164500 JC4 20.0000 KILO 263.98/KG 5,279.60
903040 ACETIC ACID 1 KGM 12164500 DJ4 100.0000 KILO 3.17/KG 317.00
型
第一组:
988320
903040
型
第二组:
TRANS DECENAL
ACETIC ACID
型
而不是这样
第一组:
988320 TRANS
903040 ACETIC
型
第二组:
DECENAL
ACID
型
3条答案
按热度按时间zrfyljdw1#
字符串
组1匹配数字,数字后面可选地跟随有单个字母的单词,或者包含字母和数字的混合物的单词,其中至少有一个数字。第2组得到所有后面只有字母的单词,除了它们之间的空格。
DEMO
juzqafwq2#
你可以试试(regex101):
字符串
这个会匹配
*第1组:6位数字+(可选)一个字符或多个字符与数字
*第2组:剩下的人
cgfeq70w3#
我假设组1和组2使用以下决策规则形成。
可以使用下面的正则表达式来实现这一点,其中捕获组1和2将分别包含组1和2(当然,前提是存在匹配)。
字符串
Demo
这个正则表达式可以分解如下。
型
在上面我把每个空格字符表示为一个包含空格的字符类,只是为了使空格可见。