0

在 Google Analytics 中,我想使用正则表达式过滤垂直条纹/条之间第一次出现为 1 = |1| 的所有 url。

我在 stackoverflow 上搜索了类似的问题,并在正则表达式测试器中进行了一些测试。但不是我想要的结果。

我测试过,但它没有测试第一个垂直条之间的第一个值。

\|([1]{1})\|

输入

https://www.website.be/results-?e=elec&Form=Home&i2=3-N-H4.225.4|1|2-Y-------Y-----1-1|1|1|1-||||0!A!A!n|0!A!A|||||||undefined!undefined-4|13-0
https://www.website.be/results-?e=elec&Form=Home&i2=3-N-H4.225.4|2|2-Y-------Y-----1-1|2|1|1-||||0!A!A!n|0!A!A|||||||undefined!undefined-4|13-0
https://www.website.be/results-?e=elec&Form=Home&i2=3-N-H4.225.4|abc|2-Y-------Y-----1-1|2|1|1-||||0!A!A!n|0!A!A|||||||undefined!undefined-4|13-0

我想要的结果

https://www.website.be/results-?e=elec&Form=Home&i2=3-N-H4.225.4|1|2-Y-------Y-----1-1|1|1|1-||||0!A!A!n|0!A!A|||||||undefined!undefined-4|13-0
4

2 回答 2

1

以下正则表达式可能就足够了:

^[^|]*\|1\|.*$

演示

这将匹配第二个以管道分隔的组件只有数字 1 的所有行。如果您还想断言更具体的内容,例如正好有 19 个组件,那么我们可以尝试扩展模式?:

^[^|]*\|1\|(?:[^|]*\|){16}[^|]*$

演示

于 2019-09-30T09:46:14.850 回答
0
result = inputs.filter(string => {
    let i = string.indexOf("|");
    return string.charAt(i+1) == "1" && string.charAt(i+2) == "|"
});
于 2019-09-30T10:14:47.157 回答