Netsuite 保存搜索公式

Netsuite saved Search Formula Trimming a Word

我正在尝试获取单词旁边的数字。例如“1bot 10box 100cs”我在 netsuite 中有另一个字段 "BOX"。我需要的是单词框旁边的数字,在我的示例中是 10。

我已经尝试过 Ltrim 和 Rtrim

regexp_substr((REPLACE((REPLACE({unitstype}, ' ', '-')),{transaction.unit},'^')), '[^-]+')

我希望输出将是我搜索的单词旁边的数字。

示例 1。 字段 A 等于 BOX,字段 B 等于 "1pc 10flp 100box 1000cs" 结果应该是 100 result = 100

请参阅下面使用您提供的输入的示例:

REGEXP_SUBSTR('1pc 10flp 100box 1000cs', '(\d+)BOX',1,1,'i',1)

结果 = 100。

假设字段 A{unitstype},字段 B{transaction.unit},这将变为:

REGEXP_SUBSTR({transaction.unit}, '(\d+)' || {unitstype},1,1,'i',1)

解释:

REGEXP_SUBSTR returns 给定源字符串的子字符串,由正则表达式定义。

第一个参数:源字符串。

第二个参数:正则表达式匹配模式

第三个参数:开始搜索的位置。默认为 1,但在这里明确设置,因为我们要使用后面的参数。

第四个参数:与return匹配的模式出现在哪一个。同样,默认为 1,在这里明确设置,因为我们要使用后面的参数。

第 5 个参数:一个匹配参数,可让您更改函数的默认匹配行为。在这种情况下,我使用 'i' 来指定不区分大小写的匹配,因为您在一个字段中有大写字母 'BOX' 而在另一个字段中有小写字母。

第 6 个参数:指定要 return 的正则表达式中的哪个捕获组。在这种情况下,您希望数字紧接在单位类型之前,因此您可以将数字和单位匹配在一起,但使用数字周围的括号将其定义为捕获组,然后您可以使用此参数 return。