正则表达式用于在javascript中存储单词之前和之后

Regex to store a word before and after in javascript

本文关键字:单词之 之后 存储 用于 javascript 正则表达式      更新时间:2023-09-26

我正在做一个硒脚本。因此,在字符串"1 - 8 个项目的 8 个项目"中。我必须找到单词"of"之前的数字和单词"of"之后的数字,将其存储在两个变量中并检查它是否相等。

因此,对于第一个,我使用正则表达式"of''s+''b(''w+(''b"获取"of">

之前的值,并使用正则表达式"(''S+(''s*of"获取"of"之后的值。我面临的问题是,当我使用此正则表达式时,结果带有单词"of"(8 of ,of 8(。我可以使用什么正则表达式来获取"of"(8,8(之前和之后的值,而无需包含单词"of"。这是使用javascript。

这个正则表达式会在of之前给你数字:

"1 - 7 of 8 items".match(/'d+(?='s+of's+)/)

我不是正则表达式专家,但我尝试过。

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);

您可以将字符串拆分为非数字:

var ar = "1 - 8 of 8 items".split(/[^'d]+/)

这给了

Array [ "1", "8", "8", "" ]

现在您可以比较数组的第 2 个和第 3 个元素

ar[1] == ar[2]

'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]第二个。

单独做是没有用的,它可能会给出错误的结果。

同时找到两者。 ('d+)'s+of's+('d+) .
"之前"位于捕获组 1 中,"之后"位于捕获组 2 中。

进行搜索。如果不知道如何访问捕获组,请阅读一些内容。