匹配正确字符串的确切正则表达式是什么
What's the exact regex to match the proper string?
我的字符串有[1212,1212],[1212,11212],...
我想将每个值提取到一个数组中,例如,我希望1212,1212
为一对并评估一系列步骤。
尝试了/[[0-9],[0-9]]/
但它没有按照我想要的方式完成任务。基本上我是正则表达式的菜鸟,有人可以帮忙吗?
提前致谢
您需要对正则表达式进行一些修改才能正常工作:
/'[[0-9]+,[0-9]+']/g
- 您需要
[
转义方括号,因为它们具有特殊含义。 -
[0-9]
只匹配一个数字,则需要+
量词来匹配一个或多个数字,从而[0-9]+
。 - 使用全局修饰符
g
提取所有匹配项。
然后,您可以将所有值提取到如下所示的数组中:
var input = "[1212,1212],[1212,11212]";
var pattern = /'[[0-9]+,[0-9]+']/g;
var result = [];
var currentMatch;
while((currentMatch = pattern.exec(input)) != null) {
result.push(currentMatch.toString());
}
result;
或者,如果您不需要一次连续查找一个匹配项,那么您可以像 Mcveigh @Matthew那样使用String.match()
:
var input = "[1212,1212],[1212,11212]";
var result = input.match(/'[[0-9]+,[0-9]+']/g);
似乎您只需要在逗号前后匹配一个或多个数字,因此您可以执行以下操作:
"[1212,1212],[1212,11212]".match(/'d+,'d+/g)
这将为您提供数组:["1212,1212", "1212,11212"]
要提取货币对:
var result = "[1212,1212],[1212,11212]".match(/'d+,'d+/g);
for (var i = 0; i < result.length; i++) {
var pair = result[i].match(/'d+/g),
left = pair[0], right = pair[1];
alert("left: " + left + ", right: " + right);
}
您需要转义要匹配的文字括号。您还可以使用'd
来匹配"任何数字",使其更整洁。此外,您只匹配一位数字。您需要匹配"一个或多个"(+
量词)
/'['d+,'d+']/g
该g
修饰符查找字符串中的所有匹配项,否则仅找到第一个匹配项。
相关文章:
- 不接受0-0-0的正则表达式是什么
- 匹配某个字符后所有文本的正则表达式是什么
- 查找大写字母的简单正则表达式是返回小写字母
- 我的电子邮件正则表达式有什么问题
- 印地语数字的正则表达式是什么
- 以下情况的有效正则表达式是什么
- 这个正则表达式有什么问题
- 匹配正确字符串的确切正则表达式是什么
- 从 JMeter 的正则表达式提取器中的字符串“什么是 (123+43)”中提取 123+43 的正则表达式是什么?
- 用于验证范围内十进制值的正则表达式是什么 - 0 到 99999.00
- 用于删除两个“”之间的字符的正则表达式是什么/"在javascript中
- 这个php正则表达式边界集的等效JavaScript正则表达式是什么
- 这个正则表达式是什么意思.检查http或https超链接就足够了吗
- JavaScript's replace()替换第二次出现的":"的正则表达式是什么?
- 只返回SSN的数字部分的javascript正则表达式是什么?
- javascript中以下需求的正则表达式是什么
- 有人能解释一下这个正则表达式是做什么的吗?
- 从youtube url获取视图代码的正则表达式是什么?
- 给定一个有效的href,原点、路径名、搜索和散列的正则表达式是什么?
- 从字符串中去掉HTML标记及其内容的正则表达式是什么?