我需要在Blue Prism的计算阶段从文本中提取数字。文字是"请注意您的订单参考:123"数字" 123"每次订购新订单时,每种情况都会更改。我需要从最后提取数字并将其提取到数据项中。我目前正在使用:
正确("请注意您的订单参考:"," 3")并且无效。
任何建议都将不胜感激。
答案 0 :(得分:1)
您可以使用Blue Prism中的计算步骤来实现这一目标,并且几乎可以正确使用它。
我假设你有整个字符串,包括订单参考号,加载到dataitem
。我们称之为dataitem [orderReference]
Right([orderReference],3)
然后会给你字符串中的最后三个字符(这将是数字)。
仅当订单参考长度始终为三位数时才有效。随着时间的推移,订单参考可能会增加到四位或五位数,您仍然只能获得最后三位数。
为了适应这种情况,您可以使用Len([orderReference])
来获取整个字符串的长度。从长度中扣除42(在数字之前有42个字符 - 我假设在之后有一个空格:否则它将是41)。
只需在Right函数中使用该数字而不是3。
Right([orderReference],Len([orderReference])-42)
答案 1 :(得分:1)
我刚刚完成了BluePrism的Developer 1课程,并且具有相同的锻炼技能。我用了这个字符串:
ToNumber(替换([保存订单号],“请注意您的订单参考:”,“”))
它从字符串中删除了文本,将其替换为什么(“”),然后从字符串中剩余的数据中创建了一个数字。瞧,您有您的订单号。
答案 2 :(得分: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”。
答案 3 :(得分:1)
将数据存储在变量中 A =请注意您的订单参考:123
使用替换([A],“请注意您的订单参考:空格”,“空格”) 然后修剪: 装饰(替换([A],“请注意您的订单参考:空格”,“空格”)) 然后转换为数字 Tonumber(Trim(Replace([A],“请注意您的订单参考:space”,“ space”)))
我有同样的情况,234澳元 我尝试了上述步骤,对我有帮助,祝您好运!
答案 4 :(得分:0)
string test = "Please take note of your order reference: 123";
string digits = new String(test.Where(Char.IsDigit).ToArray());
Console.WriteLine(digits);
**你可以通过使用代码阶段实现这一点,我使用过C#。而不是将输出打印到控制台将其加载到数据项**
答案 5 :(得分:0)
因此,在您想要返回的值之前,您有一个唯一标识符":"
,您可以利用此标识。
1)使用InStr
函数查找此唯一字符在字符串中的位置。
2)使用左功能将字符返回到包括唯一字符在内的字符。
3)然后,我们可以利用替换函数来取消刚返回的文本,只留下您想要的值。
4)chim in Trim功能(保持良好的房屋和清洁数据)
我已经展示了我在下面所做的事情(使用[Data1]
作为你的字符串值),这与你在该值之前收到的消息无关,只要你有一个唯一的字符,它总会返回值(I意识到我可以用两个词说出来(它使它变得动态))
Trim(Replace([Data1], Left([Data1], InStr([Data1], ":")), ""))
希望这会有所帮助:)
答案 6 :(得分:0)
您可以在蓝色棱镜计算阶段使用以下语句
import UIKit
import Firebase
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var tableView:UITableView!
var posts = [Post]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableView = UITableView(frame: view.bounds, style: .plain)
view.addSubview(tableView)
let cellNib = UINib(nibName: "PostTableViewCell", bundle: nil)
tableView.register(cellNib, forCellReuseIdentifier: "postCell")
var layoutGuide:UILayoutGuide!
layoutGuide = view.safeAreaLayoutGuide
tableView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor).isActive = true
tableView.topAnchor.constraint(equalTo: layoutGuide.topAnchor).isActive = true
tableView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor).isActive = true
tableView.bottomAnchor.constraint(equalTo: layoutGuide.bottomAnchor).isActive = true
tableView.delegate = self
tableView.dataSource = self
tableView.tableFooterView = UIView()
tableView.reloadData()
observePosts()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func observePosts() {
let postsRef = Database.database().reference().child("Data")
postsRef.observe(.value, with: { snapshot in
var tempPosts = [Post]()
for child in snapshot.children{
if let childSnapshot = child as? DataSnapshot,
let dict = childSnapshot.value as? [String:Any],
let title = dict["title"] as? String,
let logoImage = dict["image"] as? String,
let url = URL(string:logoImage),
let description = dict["description"] as? String{
let userProfile = UserProfile(title: title, photoURL: url)
let post = Post(id: childSnapshot.key, title: userProfile, description: description, image: userProfile)
print(post)
tempPosts.append(post)
}
}
self.posts = tempPosts
self.tableView.reloadData()
})
}
func getImage(url: String, completion: @escaping (UIImage?) -> ()) {
URLSession.shared.dataTask(with: URL(string: url)!) { data, response, error in
if error == nil {
completion(UIImage(data: data!))
} else {
completion(nil)
}
}.resume()
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCell(withIdentifier: "postCell", for: indexPath) as! PostTableViewCell
cell.set(post: posts[indexPath.row])
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
tableView.estimatedRowHeight = 50
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "PostDetailSegue" {
if let indexPaths = self.tableView!.indexPathForSelectedRow{
}
}
}
}
答案 7 :(得分:0)
使用Replace():
Trim(Replace(AllTextInElement, "Please take note of your order reference:", ""))
在代码块中使用正则表达式:
ExtractedNumbers = Regex.Match(AllTextInElement, "\d+")
答案 8 :(得分:0)
ToNumber(Replace([Order Reference], "Please take note of your order reference:",""))