在 javascript 之前和之后存储单词的正则表达式
Regex to store a word before and after in javascript
我正在编写 selenium 脚本。因此对于字符串“1 - 8 of 8 items”中的那个。我必须找到单词 "of" 之前的数字和单词 "of" 之后的数字,将其存储在两个变量中并检查它们是否相等。
因此,首先我使用正则表达式 "of\s+\b(\w+)\b" 获取 "of" 之前的值,使用正则表达式“(\S+)\s*of”获取 "of" 之后的值。我面临的问题是,当我使用此正则表达式时,结果带有单词 "of"(8 个,共 8 个)。我可以使用什么正则表达式来获取 "of" (8,8) 前后的值,而不包括单词 "of"。这是使用 javascript。
我不是正则表达式专家,但我试过了。
var findings = "1 - 8 of 8 items 1 - abc of ghi items".match(/\w+ of \w+/g);
var collection = [];
findings.forEach(function(item){
var words = item.split(' ');
collection.push({first: words[0], second: words[2]});
});
console.log(collection);
此正则表达式将为您提供 of
:
之前的号码
"1 - 7 of 8 items".match(/\d+(?=\s+of\s+)/)
'1 - 8 of 8 items'.match(/of\s+\b(\w+)\b/)[1]
给出第一个8
.
'1 - 8 of 8 items'.match(/(\S+)\s*of/)[1]
给出第二个 8
.
备选
我会这样写:
'1 - 8 of 8 items'.match(/(\d+) of/)[1]
为第一。
'1 - 8 of 8 items'.match(/of (\d+)/)[1]
第二个
您可以在非数字处拆分字符串:
var ar = "1 - 8 of 8 items".split(/[^\d]+/)
这给出了
Array [ "1", "8", "8", "" ]
现在你可以比较数组的第二个和第三个元素
ar[1] == ar[2]
单独做是没有用的,它会给出错误的结果。
同时找到两者。 (\d+)\s+of\s+(\d+)
.
之前在捕获组 1 中,之后在捕获组 2 中。
进行搜索。如果您不知道如何访问捕获组,请阅读一些内容。
我正在编写 selenium 脚本。因此对于字符串“1 - 8 of 8 items”中的那个。我必须找到单词 "of" 之前的数字和单词 "of" 之后的数字,将其存储在两个变量中并检查它们是否相等。
因此,首先我使用正则表达式 "of\s+\b(\w+)\b" 获取 "of" 之前的值,使用正则表达式“(\S+)\s*of”获取 "of" 之后的值。我面临的问题是,当我使用此正则表达式时,结果带有单词 "of"(8 个,共 8 个)。我可以使用什么正则表达式来获取 "of" (8,8) 前后的值,而不包括单词 "of"。这是使用 javascript。
我不是正则表达式专家,但我试过了。
var findings = "1 - 8 of 8 items 1 - abc of ghi items".match(/\w+ of \w+/g);
var collection = [];
findings.forEach(function(item){
var words = item.split(' ');
collection.push({first: words[0], second: words[2]});
});
console.log(collection);
此正则表达式将为您提供 of
:
"1 - 7 of 8 items".match(/\d+(?=\s+of\s+)/)
'1 - 8 of 8 items'.match(/of\s+\b(\w+)\b/)[1]
给出第一个8
.
'1 - 8 of 8 items'.match(/(\S+)\s*of/)[1]
给出第二个 8
.
备选
我会这样写:
'1 - 8 of 8 items'.match(/(\d+) of/)[1]
为第一。
'1 - 8 of 8 items'.match(/of (\d+)/)[1]
第二个
您可以在非数字处拆分字符串:
var ar = "1 - 8 of 8 items".split(/[^\d]+/)
这给出了
Array [ "1", "8", "8", "" ]
现在你可以比较数组的第二个和第三个元素
ar[1] == ar[2]
单独做是没有用的,它会给出错误的结果。
同时找到两者。 (\d+)\s+of\s+(\d+)
.
之前在捕获组 1 中,之后在捕获组 2 中。
进行搜索。如果您不知道如何访问捕获组,请阅读一些内容。