ruby-on-rails - 正则表达式匹配从字符串中获取正确数字的简单逻辑

标签 ruby-on-rails regex

这里我有几个不同的工资字符串:

"U3 000 Per Month"
"U10 000 - U12 000 Per Month"
"U12 000 Per Month"
"U125 000 - U130 000 Per Month"
"U130 000 Per Month"

我正在尝试使用以下逻辑构建正则表达式:

仅匹配第一个 U 字母之后的第一个 1,2 或 3 位数字,然后匹配第一个之后的单个空格之后的零强> 1,2 或 3 位数字组。字符串的其余部分并不重要。例如,我们有几个字符串:

"U20 000 - U30 000 Per Month"
"U3 000 Per Month"
"U125 000 - U130 000 Per Month"

我想要一个正则表达式返回

20000, 3000, 125000

请帮忙,我已经厌倦了挖掘正则表达式文档

最佳答案

您可以尝试使用 (?<=^U)\d{1,3}\s0* .

regex = /(?<=^U)\d{1,3}\s0*/
p 'U20 000 - U30 000 Per Month'.scan(regex).first.sub(/\s/, '') # "20000"
p 'U3 000 Per Month'.scan(regex).first.sub(/\s/, '') # "3000"
p 'U125 000 - U130 000 Per Month'.scan(regex).first.sub(/\s/, '') # "125000"

我认为 \s 之后只包含零,因此您添加 \d{1,3} 会更合适。

关于ruby-on-rails - 正则表达式匹配从字符串中获取正确数字的简单逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753450/

相关文章:

regex - Linux - 在路径中的每个斜杠后查找与正则表达式匹配的结果

regex - 如何生成开头或结尾不包含特定字符串的正则表达式?

regex - 无法构建正则表达式

ruby-on-rails - 为什么我的主页链接试图将我带到 '/root_path' 而不是 '/' ?

ruby-on-rails - 如何在 Rails 5 中按特定顺序加载装置

javascript - 客户端数据存储

java - 如何在Java中实现正则表达式

javascript - URL 验证的正则表达式(在 JavaScript 中)

ruby-on-rails - 我们可以得到 Ruby 和 Rails 的性能统计数据吗?我们正在说服企业使用 Rails!

ruby-on-rails - twitter/facebook 身份验证的 Rails 4 错误。设计