我有这行字,其中:
POS_17=78n(18n,100n)n
WOS<8s(4s,5s)s=Pos:D4 Facebook F:5/8 Rack
我有一个问题,这个regex如下。
^\s*([^_]+)(_\w+)?([<>=])(.*)\s*$
问题是如果在同一行中有=或<或>,它将取最后一个出现的字符之一 < > =
.我的问题在第二行。你可以检查一下 https:/regex101.comrPDACQl1
预期结果 :
**For First line :**
POS_17=78n(18n,100n)n
Group 1. POS
Group 2. _17
Group 3. =
Group 4. 78n(18n,100n)n
**For second line :**
WOS<8s(4s,5s)s=Pos:D4 Facebook F:5/8 Rack
Group 1. WOS
Group 3. <
Group 4. 8s(4s,5s)s=Pos:D4 Facebook F:5/8 Rack
你可以在第一个被否定的字符类中添加< > 和 =这几个字符,使其不匹配。
你可以省略掉"<>="(.*/s*$)。\s*
因为它是可选的,不属于最后一个捕获组。
^\s*([^_<>=]+)(_\w+)?([<>=])(.*)$
^^^
^\s*([^\W_]+)(_\d+)?([<=>])(.*\S)\s*$