我有一个凌乱的清单,我正试图摆脱价格之外的所有东西,前面有一个美元符号$。
但它们的位数不同。有些是“$ X.XX”,有些是“$ XX.XX”
如果可能的话,我希望能够在价格之间插入一个“+”,所以它看起来像“$ X.XX + $ XX.XX + ......”
我尝试搜索,但解决方案对我不起作用(尽管他们使用的是英镑符号,可能需要不同的查询)
答案 0 :(得分:0)
与您的价格相匹配的正则表达式将是
\$\d+\.\d+
其中\$
是一个美元符号(记住你需要转义它,因为只有$
表示字符串结束,\d+
表示至少有一个数字,\.
一个点(再次,逃避,因为.
表示任何角色)
这将匹配
$1.2
,$24.67
等
在Sublime Text中,您可以使用Find-Replace
查找:.*(\$\d*\.\d*).*
替换:$1
示例强>
product1 $14.22 categoryA
product2 $5.2 categoryA
product3 $0.2456 categoryB
会变成
$14.22
$5.2
$0.2456
答案 1 :(得分:0)
你可以使用它(应该使用notepad ++):
search: (?>[^$]+|\$(?!\d{1,2}\.\d{2}))*(\$\d{1,2}\.\d{2})
replace: $1+
(或search: .*?(\$\d{1,2}\.\d{2})
)
然后手动删除最后的+