任何人都可以帮助我理解为什么正则表达式\(\w+[^config]\)
与以下字符串中的(epam_contractor_net)
,(ctmain1_soasta_eucap1_coresys)
而不是(epam_contractor_soasta_web_svc)
匹配吗?
config term
fw1-ravpn-lab-lon(config)# no object-group service epam_contractor_soasta_web_s$m_contractor_soasta_web_sv cno object-group service epam_contractor_soasta_web_$
Removing object-group (epam_contractor_soasta_web_svc) not allowed, it is being used.
fw1-ravpn-lab-lon(config)# no service-object tcp destination eq www
^
ERROR: % Invalid input detected at '^' marker.
fw1-ravpn-lab-lon(config)# no object-group network epam_contractor_net
Removing object-group (epam_contractor_net) not allowed, it is being used.
fw1-ravpn-lab-lon(config)# no object-group network ctmain1_soasta_eucap1_coresy$ain1_soasta_eucap1_coresys no object-group network ctmain1_soasta_eucap1_cores$
Removing object-group (ctmain1_soasta_eucap1_coresys) not allowed, it is being used.
fw1-ravpn-lab-lon(config)# end
fw1-ravpn-lab-lon#
答案 0 :(得分:0)
您所拥有的意思是一个或多个单词字符\w+
,并且您指定最后一个字符不应为c, o, n, f, i, or g
中的任何一个。但是,epam_contractor_soasta_web_svc
中的最后一个字符为c
。因此,它与该字符串不匹配。
答案 1 :(得分:0)
模式\(\w+[^config]\)
将排除以config
(c
,o
,n
,f
, i
,g
),而不是字符串config
本身。这意味着,如果您有一个值(i_end_in_c)
,那么它也将不匹配(因为它以c
结尾)。 (i_end_in_o)
或(i_end_in_n)
等也是如此。
这与未找到(epam_contractor_soasta_web_svc)
的原因相同-因为它以c
结尾。
您应该改用否定的前瞻:
\((?!config)\w+\)
以上内容与以config
开头的任何字符串都不匹配。