给定以下结构ID的行:'560'",,10.117.219.156,Browser,fa7a0434 -8f0a-47f2-a3ea-3864d652a042,NAME:
我希望提取IP地址(任何IP)和“,”后面的单词或单词,直到“,”。在这个例子中,返回的单词是“Browser”。
以下是我迄今为止最好的:(?<=,)(\d+)\.(\d+)\.(\d+)\.(\d+),\w+(?=,)
上面的表达式对'逗号'执行正向后查找,然后捕获类似于IP地址“(\d+).(\d+).(\d+).(\d+)”的组,然后是'逗号',然后是感兴趣的单词,然后是'逗号'。
问题是正则表达式返回了我不想要的IP地址。这是我跑步时得到的反馈:grep -Po '(?<=,)(\d+)\.(\d+)\.(\d+)\.(\d+),\w+(?=,)' /c/tmp/BB1.csv
10.117.245.154,Browser
10.123.33.66,PyCharm IDE
10.117.245.123,Calculator HP
我想要的是:浏览器PyCharm IDE计算器HP
1条答案
按热度按时间mrzz3bfm1#
你可以用
参见regex demo。* 详情 *:
,
-逗号\d+
-一个或多个数字(?:\.\d+){3}
-.
出现三次,然后出现一个或多个数字,
-逗号\K
-match reset operator,从整个匹配内存缓冲区中丢弃迄今为止匹配的所有文本[^,]+
-逗号以外的一个或多个字符。