小编rjm*_*m61的帖子

Bash =~ regex 和 https://regex101.com/

使用https://regex101.com/我构建了一个正则表达式来返回字符串中第一次出现的 IP 地址。

正则表达式:

(?:\d{1,3}\.)+(?:\d{1,3})
Run Code Online (Sandbox Code Playgroud)

RegExp 包括分隔符:

/(?:\d{1,3}\.)+(?:\d{1,3})/
Run Code Online (Sandbox Code Playgroud)

使用以下测试字符串:

eu-west                       140.243.64.99 
Run Code Online (Sandbox Code Playgroud)

它返回一个完整的匹配:

140.243.64.99
Run Code Online (Sandbox Code Playgroud)

无论我尝试使用锚点等做什么,以下 bash 脚本都不适用于生成的正则表达式。

temp="eu-west                       140.243.64.99            "
regexp="(?:\d{1,3}\.)+(?:\d{1,3})"
if [[ $temp =~ $regexp ]]; then
  echo "found a match"
else
  echo "No IP address returned"
fi
Run Code Online (Sandbox Code Playgroud)

bash regular-expression

20
推荐指数
2
解决办法
8万
查看次数

标签 统计

bash ×1

regular-expression ×1