我有下面的正则表达式(?i)(?<=\b(?:host)\s*(?:name)\s*[-|:|=|\s]\s*)(?=.*[^\s][\d\_\-\.].*)([a-zA-Z0-9\(\)\._\-\'\"]{5,})
这里我尝试在正则表达式中查找主机名值。我的要求是:
1.主机名中应包含数字、_、-或.
1.主机名可以由字母数字(). _ - '“组成
1.主机名的模式为hostname: test123
或hostname= test123
或hostname- test123
或hostname test123
host name: test123
或host name= test123
或host name- test123
或host name test123
hostname : test123
或hostname = test123
或hostname - test123
或hostname test123
等
因此,这就是为什么我选择了上面提到的正则表达式,以包括积极的lookbehind和积极的lookaheadAssert
我举两个例子:
输入1:host name : en.wikipedia.org is a correct example
输入2:Verify that the hostname installation configures the system.
输入1是正确的示例,因为检测到的字符串en.wikipedia.org
包含.
,而输入2中installation
的检测是无效的检测,因为不包含数字或_或。
但是上面的正则表达式a .
在Input 2中的句子末尾,该正则表达式匹配。
如何解决这个问题呢?
1条答案
按热度按时间lyr7nygr1#
我不知道你是否解决了你的问题,但这可以为你工作:
请参阅demo here
您将需要使用组来从匹配项中获取主机名。