我需要找到单词root、name或server是否与Regex在一行,这样我就可以忽略它们,但我还没有找到一个好的解决方案来识别它们。
它扫描的格式是这样的:
<Server name="JZL902757">
<Snapshots timestamp="02/10/2022 12:16:31">
<Snapshot root="D:somefolderanotherfolder">
所有三个单词的前面总是有一个空格="之后。
在试图找到解决方案时,我发现这个Regex可以匹配包含两个名称的字符串,但在测试时没有产生任何匹配。
如有任何帮助或建议,我们将不胜感激。
我不知道你想要什么,所以我给了你所有的选择。
该字符串将匹配包含以下三个单词之一的任何一行:服务器、字符串或名称,因此它将|
用于OR
^.*([Nn]ame|[Ss]erver|[Rr]oot).*$
此字符串将不匹配任何不包含以下内容的行:服务器、字符串或名称:
我们对每一行都有负面展望,因此它是NOR
^((?![Rr]oot)(?![Ss]erver)(?![Nn]ame).)*$
这个字符串将只匹配包含所有三个单词的行,按任何顺序排列,所以它是AND
,使用三个正向外观ahead。
^(?=.*[Ss]erver)(?=.*[Rr]oot)(?=.* [Nn]ame).*$
最后,这个字符串将只匹配包含所有三个单词的行,每个前面有一个空格,后面有一个等号
^(?=.* [Ss]erver=)(?=.* [Rr]oot=)(?=.* [Nn]ame=).*$