比较两个正则表达式对象

时间:2017-05-09 16:10:17

标签: javascript regex regex-group

我有两个经过测试和工作的正则表达式值:

(?<=\bpolicy-map\s)(\w+)

(?<=\binput\s)(\w+)

我现在需要比较匹配的两个正则表达式值。
(?&lt; = \ binput \ s)(\ w +)获得&#34; service-policy input&#34;之后的单词。 while(?&lt; = \ bpolicy-map \ s)(\ w +)获得&#34; policy-map&#34;之后的单词。 背景故事是我有一个路由器配置文件,我看到&#34;策略映射&#34;值匹配&#34;服务政策输入&#34;值。以下是我正在测试的路由器配置文件中的值。请注意,这些值不会是连续的,因为&#34;控制平面&#34;坐在他们之间,所以可能要做(?s)或其他事情:

------------rtr config-----------------
policy-map RTR_CoPP
control-plane
service-policy input RTR_CoPP
------------rtr config-----------------

1 个答案:

答案 0 :(得分:0)

假设你正在做的是解析你的配置,它将文本作为字符串读取, 我会简化您的正则表达式以匹配第一项:/^.*policy-map\s(\w+)和第二项:/\binput\s(\w+)$/

这应该从头开始解析第一个正则表达式,从结尾解析第二个部分。如果你比较来自两个不同正则表达式的匹配,你不需要?=,如果你输入一个正则表达式,它会重置指针。