在这里,我有几个关于薪水的不同的字符串:
"U3 000 Per Month"
"U10 000 - U12 000 Per Month"
"U12 000 Per Month"
"U125 000 - U130 000 Per Month"
"U130 000 Per Month"我试图使用以下逻辑构建正则表达式:
只匹配first 1、2或3位数(仅在第一个U字母之后),然后匹配在first 1、2或3位组之后的单个空格后面的零。剩下的字符串不重要。例如,我们没有几个字符串:
"U20 000 - U30 000 Per Month"
"U3 000 Per Month"
"U125 000 - U130 000 Per Month"我想要一个regex回来
20000,3000,125000
请帮帮忙,我已经厌倦了挖掘Regex文档
发布于 2017-10-15 09:39:56
你可以试试*。
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}会更合适。
https://stackoverflow.com/questions/46753450
复制相似问题