regex 正则表达式只匹配美元符号、货币、小数

wn9m85ua  于 12个月前  发布在  其他
关注(0)|答案(4)|浏览(166)
  • 正则表达式 *
y = [X: $1.19] [Y: $5.29] [Z 999/1000]
x = re.findall(r"\$[^ ]+", y)

字符串

  • 火柴 *
$1.19] 
$5.29]

  • 预期匹配 *
$1.19
$5.29

  • 如何调整正则表达式以匹配可能包含小数且必须包含美元符号的金额?-这些值可能会更改。例如:*
$x.xx # 'x' representing a number

huwehgph

huwehgph1#

你可以简单地使用以下正则表达式进行搜索。

正则表达式:\$\d+(?:\.\d+)?
说明:

\$:确保美元符号后接
\d+:一个或多个数字
(?:\.\d+)?:小数部分,可选
Regex101 Demo

6yjfywim

6yjfywim2#

只需将被取反的字符类中的空格替换为闭括号:

In [37]: x = re.findall(r"\$[^\]]+", y)

In [38]: x
Out[38]: ['$1.19', '$5.29']

字符串

xa9qqrwz

xa9qqrwz3#

这种情况下最好的正则表达式是

\$\d+(?:.(\d+))?

字符串

说明

  • $* 显示它应该以美元符号开头
    \d+匹配小数点前的所有数字
    (?:.(\d+)) 匹配小数点后是否有数字。例如,在$1.12
    中,它将匹配
    .12
    并捕获12(小数点后的部分)。如果货币为**$1.,则只匹配$1**,不匹配**.**
    Regular Expression tester, library, tutorials and cheat sheet.
qgelzfjb

qgelzfjb4#

第一个月

说明

[\$ ]+?接受美元,将\$替换为您需要的货币
(\d+([,\.\d]+)?)带逗号和句点的数字,重复任意次数。与英国编号系统或R无关

相关问题