Javascript 返回括号内带浮点数的数字的正则表达式
这是一个示例字符串Javascript 返回括号内带浮点数的数字的正则表达式,javascript,Javascript,这是一个示例字符串 var s = "some text 123 [Price $20.99] some other text"; 我想得到方括号中包含的任何数值以及小数点 我试过的是 s.match(/\d+.\d+/); 结果是123,20.99,但我不希望它获取括号外的数字 谁能告诉我我做错了什么吗?这是我做的 s.match(/\[*(\d+.\d+)\]/)[1] 欢迎来到正则表达式的世界 小数点是正则表达式中的一个符号,如果您想逐字匹配它,则需要使用反斜杠(\)对其进行转义 这
var s = "some text 123 [Price $20.99] some other text";
我想得到方括号中包含的任何数值以及小数点
我试过的是
s.match(/\d+.\d+/);
结果是123,20.99,但我不希望它获取括号外的数字
谁能告诉我我做错了什么吗?这是我做的
s.match(/\[*(\d+.\d+)\]/)[1]
欢迎来到正则表达式的世界 小数点是正则表达式中的一个符号,如果您想逐字匹配它,则需要使用反斜杠(
\
)对其进行转义
这适用于我(从Chrome JavaScript控制台):
如果你想特别地只在方括号内搜索,那么你也需要添加这些;方括号也是特殊的,因此需要转义。另外,如果你想允许括号和数字之间的内容,你也需要特别考虑。然后,您需要使用捕获括号,这意味着您需要以与第一种简单情况稍有不同的方式访问匹配。这对我很有用:
> var t = "Some text 123 and decimal number 12.34 and now [in square brackets 56.78] yada yada";
> t.match( /\[.*?(\d+\.\d+).*?\]/ )[1]
"56.78"
让我与您一起介绍regexp:
\[
文字方括号*?
除换行符以外的任何字符,零次或多次,非贪婪(
开始捕获\d+
编号,一次或多次\。
文字点\d+
编号,一次或多次)
结束捕获*?
除换行符以外的任何字符,零次或多次,非贪婪\]
文字方括号你得到一个数组作为回报。数组元素
0
将再次成为整个匹配项,数组元素1
是第一次捕获的内容。必须走,但/\[.*(\d+。。。。。。.+.*/\]/
几乎可以工作与第一个数字的开头不匹配。我得到了这个工作s.match(/\[*(\d+。+.+\]/])[1]
不客气!很乐意帮忙!:)继续锻炼你的肌肉!
> var t = "Some text 123 and decimal number 12.34 and now [in square brackets 56.78] yada yada";
> t.match( /\[.*?(\d+\.\d+).*?\]/ )[1]
"56.78"