Regex查找行中是否有3个单词中的任何一个



我需要找到单词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=).*$

相关内容

  • 没有找到相关文章

最新更新