我正在尝试编写一个正则表达式,它匹配以下任何一行
localhost本地域(127.0.0.1)0.025 ms 0.007 ms 0.006 ms
127.0.0.1(127.0.0.1)0.025毫秒0.007毫秒0.006毫秒
我试过下面的regexp
[127.0.0.1 | localhost.localdomain](127.0.0.1)[\d.]ms[\d.]ms[\d.]ms
但这不起作用。它只匹配
n(127.0.0.1)0.025 ms 0.007 ms 0.006 ms
我能在这方面得到一些帮助吗。
谢谢~S
在字符类中,没有匹配字符串的概念。对于regex[cat]
,它并不意味着它应该从字面上匹配单词cat。这意味着它应该匹配c或a或t。
同样的案子在这里。您正试图使用字符类匹配起始字符串
[127.0.0.1|localhost.localdomain]
应该用组来代替它
(?:127.0.0.1|localhost.localdomain)
您还希望从字面上匹配括号()
,但是括号在正则表达式中具有特殊含义。他们是群体。要逐字匹配括号,应该使用\
转义。
所以最终的正则表达式是
(?:127.0.0.1|localhost.localdomain) \(127.0.0.1\) [\d.]+ ms [\d.]+ ms [\d.]+ ms
(?:)
是非捕获组。它不会将结果存储在内存中。
Regex Demo