我想匹配这个字符串:
<Array value="Default">
<Element value="5"/>
我尝试过Negative Lookahead:
^((?!^\<Array value\=\"[a-zA-ZäöüßÄÖÜ]+\"\>).)
^((?!^\<Element value\=\"[0-9]+\"\/\>).)*$
例如,如果我删除了令牌'&gt;'然后比赛将是真的。但在每种情况下都是错误的。
如果我尝试这场比赛
^((?!^\<Array value\=\"[a-zA-ZäöüßÄÖÜ]+\"\>).)*$
到此String(我删除了令牌'&gt;')
<Array value="Default"
然后出来是真的。所以我认为失败的是这个正则表达式的两行
^((?!^\<Array value\=\"[a-zA-ZäöüßÄÖÜ]+\"\>).)
^((?!^\<Element value\=\"[0-9]+\"\/\>).)*$
合并为假。
有没有人解决我的问题?
抱歉我的英文不好!
答案 0 :(得分:0)
编辑我认为你不需要Negative Lookahead来匹配整个字符串。你可以尝试:
<Array\s+value="[^"]+">\s+<Element\s+value="[^"]+"\/>
答案 1 :(得分:0)
您可以使用此模式将两个值作为结果匹配中的组。请注意,您可能必须设置正则表达式实现的多行标记。
^\s*<\s*Array\s+value\s*=\s*"(.+?)"\s*>\s*<\s*Element\s+value\s*=\s*"(.+?)"\s*/?\s*>\s*$