【发布时间】:2012-04-24 09:57:21
【问题描述】:
如果我有:
string = (1000.00)
如何使用正则表达式删除括号并获得输出为1000.00?
谢谢
【问题讨论】:
标签: regex
如果我有:
string = (1000.00)
如何使用正则表达式删除括号并获得输出为1000.00?
谢谢
【问题讨论】:
标签: regex
试试这个正则表达式:
s/([()])//g
简要说明:
[] 用于为任何正则表达式创建一个字符集。对于这种特殊情况,我的字符集由( 和) 组成。所以总的来说,用空字符串替换( 和)。
【讨论】:
[] 用于创建字符集。我的字符集包含( 和)。所以总的来说,用空字符串替换( 和)。
string.replace(/([()])/g, '')
替换模式:
\((.+?)\)
用替换模式:
\1
注意括号 () 的转义,因为它们作为括号字符的字面意思。
【讨论】:
\1 是一个“反向引用”。它的意思是“任何被第一组括号捕获的东西。”
\(.+?\) 和 replacement pattern \1 的匹配对。
Perl 语法:/\(([0-9\.]+)\)/(未经测试)
更新:(更严格)
Perl 语法:/\((-?[0-9]+\.[0-9]*)\)/
【讨论】:
(-100.00)。它还将匹配(.....) 或(1.2.3)。如果您要完全没有选择性,则最好正确执行并使用.+?。 ;)
(1000.) - 一个带小数点且后面没有数字的数字。 作为旁注: 为了匹配整数或十进制数,我实际上会使用(-\s*)?\d+(\.\d+)?。如果要匹配工程符号,请在其后添加一个额外的(\s*[eE]\s*-?\s*\d+),例如-1.024e10。 ;)