4

我需要从 Blue Prism 计算阶段的文本中提取数字。文本是“请记下您的订单编号:123” 每次下新订单时,数字“123”都会更改。我需要从末尾提取数字并放入数据项中。我目前正在使用:

对(“请记下您的订单参考:”,“3”),它不起作用。

任何建议将不胜感激。

4

9 回答 9

2

我刚刚完成 BluePrism 的 Developer 1 课程并进行了相同的练习。我使用了这个字符串:

ToNumber(Replace([Save ordernumber], "请记下您的订单编号:",""))

它从字符串中删除了文本,将其替换为空(“”),然后从字符串中剩余的数据中创建一个数字。瞧,你有你的订单号。

于 2019-01-24T20:33:08.653 回答
1

您可以使用 Blue Prism 中的计算步骤来实现这一点,而且您几乎做对了。

我假设您已将包括订单参考号在内的整个字符串加载到dataitem. 让我们称之为dataitem [orderReference]

Right([orderReference],3)然后会给你字符串中的最后三个字符(这将是数字)。

这仅在订单参考始终为三位数时才有效。随着时间的推移,订单参考可能会增加到四位或五位,而您仍然只能得到最后三位。

为了适应这一点,您可以使用Len([orderReference])来获取整个字符串的长度。从长度中减去 42(数字前有 42 个字符 - 我假设 : 后面有一个空格,否则为 41)。

只需在 Right 函数中使用该数字而不是 3。

Right([orderReference],Len([orderReference])-42)
于 2018-05-03T12:50:28.233 回答
1
Replace("Please take note of your order reference:123",
  Left("Please take note of your order reference: 123",
  InStr("Please take note of your order reference: 123",":")),"")

注意:使用数据项而不是“请记下您的订单参考:123”..

于 2020-01-18T15:35:56.877 回答
1

":"因此,您在要返回的值之前有一个唯一标识符,您可以利用它来发挥自己的优势。

1) 使用InStr函数查找此唯一字符在字符串中的位置。

2) 使用 Left 函数返回字符,直到并包括唯一字符。

3)从这里我们可以利用替换功能来取消你刚刚返回的文本,只留下你想要的值。

4)在修剪功能中夹头(良好的内务管理和更清洁的数据)

我已经展示了我在下面所做的事情([Data1]用作您的字符串值),这与您在该值之前收到的消息无关,只要您有一个唯一字符,它将始终返回该值(我意识到我可以在两个词(它使它变得动态))

Trim(Replace([Data1], Left([Data1], InStr([Data1], ":")), ""))

希望这可以帮助 :)

于 2018-05-11T16:08:42.477 回答
1

将您的数据存储在变量 A=请注意您的订单参考:123

使用 Replace([A],"请记下您的订单参考:空格","space ") THEN 修剪它: Trim(Replace([A],"请记下您的订单参考:空格","空格" )) THEN 转换为 Number Tonumber(Trim(Replace([A],"请记下您的订单参考:空格","空格")))

我有同样的情况,AUD $ 234 我尝试了以上对我有帮助的步骤,祝你好运!!

于 2020-04-11T07:37:56.780 回答
0

使用替换():

Trim(Replace(AllTextInElement, "Please take note of your order reference:", ""))

在代码块中使用正则表达式:

ExtractedNumbers = Regex.Match(AllTextInElement, "\d+")
于 2019-02-09T13:12:14.440 回答
0

您可以在蓝棱镜计算阶段使用以下语句

Trim(Mid([Data2], InStr([Data2], ":")+1, Len([Data2])-2))
于 2018-11-05T10:40:24.367 回答
0
ToNumber(Replace([Order Reference], "Please take note of your order reference:",""))
于 2019-11-21T11:08:25.757 回答
0
        string test = "Please take note of your order reference: 123";
        string digits = new String(test.Where(Char.IsDigit).ToArray());
        Console.WriteLine(digits);

**您可以通过使用代码阶段来实现这一点,我使用的是 C#。而不是将输出打印到控制台将其加载到数据项**

于 2018-05-01T17:05:33.150 回答