我现在有这个
([\w\-"]+)[ ]+OBJECT-TYPE[^[::=]*]*::=[ ]*\{[ ]*([\w\-"]+) ([\w\-"]+)它所做的就是寻找这样的东西:
DATA1 OBJECT-TYPE
SYNTAX SEQUENCE OF ContactInfoEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing Contact Info information"
::= { DATA2 DATA3 }我只是有一个问题认为我解决了
OBJECT-TYPE[^[::=]*]*::=这意味着在字符串“对象类型”(不是"::=“)之后搜索任何字符,直到它实际上找到"::=”--直到我注意到
[^[::=]*]* 实际上,意思是:或=而不是"::=“,那么我该如何解决这个问题呢?
编辑:如果有人还在这里,这样我就不需要再问另一个问题了,我怎么能忽略两个字符、符号、数字等等。
示例:
不要忽视这个“忽略这里的一切”不要再忽略“再忽略”等
发布于 2014-07-17 12:36:52
您可以在这种构造中使用负前瞻:
(?:(?!::=).)*匹配除::=以外的任何字符。
顺便说一下,[^[::=]*]*将匹配除[、:、=、]和0或更多的]以外的任何字符。
对于第二部分,您可以使用类似的内容,并进行一些简化:
([\w"-]+)[ ]+OBJECT-TYPE(?:"[^"]*"|(?!::=).)*::=[ ]*{[ ]*([\w"-]+) ([\w"-]+)发布于 2014-07-17 12:38:58
尝试使用(:|=)来选择一个或另一个。不确定你是否需要逃跑。
发布于 2014-07-17 12:44:42
你可以试试消极的场景:
^((?!::=).)*
https://stackoverflow.com/questions/24803763
复制相似问题