【发布时间】:2019-11-14 16:04:06
【问题描述】:
我在 regex101 上玩了一段时间,但无法弄清楚,这可能是因为 NetSuite 中使用的 regex 版本。在 regex101 上使用下面的字符串突出显示我想要作为第 1 组的部分,但在 NetSuite 中没有任何结果。
我试过了:(?:,[^,]+,?){2}(,[^,]+,?)
尝试从该数据集中获取第 3 个和第 4 个逗号之间的值:
+000000006 06:23:15.291450,W-CHEVLPFULL-LP | ,+000000006 06:23:15.291450,W-CHEVUS | ,
+000000044 08:09:52.291450,W-ADITIVOSSM-SM | KM8014,+000000044 08:09:52.291450,W-CHEVLPFULL-LP | KM8014,
+000000125 00:53:18.291450,W-ADITHPSMFULL-HP-SM | ,+000000125 00:53:18.291450,W-ADITIVOSSM-SM | ,
+000000138 05:08:01.291450,W-ADITHPSMFULL-HP-SM | KM8512,+000000138 05:08:01.291450,W-EMPTYAVAILABLE | KM8512,
+000000138 05:20:45.291450,W-ADITIVOSSM-SM | ,+000000138 05:20:45.291450,W-EMPTYAVAILABLE |
应该是:
W-CHEVUS |
W-CHEVLPFULL-LP | KM8014
W-ADITIVOSSM-SM |
W-EMPTYAVAILABLE | KM8512
W-EMPTYAVAILABLE |
我尝试了其他“非捕获组”,但结果很奇怪,这让我认为它不受支持,或者我使用不正确。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
Netsuite 中的正则表达式是什么?那里有什么方法可以让您访问群组吗?试试
(?<=^(?:[^,]*,){3})[^,]+ -
我猜它是 oracle 数据库使用的任何东西。我正在调用 REGEXP_SUBSTR( ) 函数。搜索将我带到这里:docs.oracle.com/cd/B19306_01/server.102/b14200/functions131.htm
-
如果是Oracle,使用
REGEXP_SUBSTR(col, '^([^,]*,){3}([^,]+)', 1, 1, NULL, 2) -
上下文是什么?数据来自哪里?如果这发生在套件脚本中,那么什么类型的脚本?我问是因为您粘贴的数据不是我所知道的任何自然 Netsuite 数据格式。