regex - 匹配 ssh 连接字符串的正则表达式

标签 regex ssh

我试图编写一个正则表达式来匹配有效的 ssh 连接字符串,但没有成功。

我真的只需要识别格式的字符串:

  • 用户@主机名:/一些/路径

但最好也匹配一个隐式主目录:

  • 用户@主机名:

到目前为止,我已经想出了这个正则表达式:

/^[:alnum:]+\@\:(\/[:alnum:]+)*$/

它没有按预期工作。

在我的大脑爆炸并且我开始用噪音说话之前欢迎任何建议 :)

最佳答案

您提供的正则表达式没有主机名部分。尝试:

/^[:alnum:]+\@[:alnum:\.]\:(\/[:alnum:]+)*$/

/^[A-Za-z][A-Za-z0-9_]*\@[A-Za-z][A-Za-z0-9_\.]*\:(\/[A-Za-z][A-Za-z0-9_]*)*$/

因为我不相信没有双括号的 alnum。

此外,:alnum: 可能无法为您的部分提供所需的范围。你可以有 ”。”主机名中的字符,并且可能还需要允许使用“_”字符。我很少看到用户名或主机名以非字母开头。

作为旁注,我尽量避免使用增强型正则表达式,因为它们并非在所有正则表达式引擎上运行(我使用 UNIX 已有很长时间)。不幸的是,这使我的正则表达式笨拙(见上文)并且不太国际化。对此深表歉意。

关于regex - 匹配 ssh 连接字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355723/

相关文章:

emacs - 如何在Mac上通过ssh发送元 key ?

r - 将文本文件中的谷歌评论转换为 rmarkdown 脚注

javascript - 匹配特殊字符之间的最后一个字符串

docker run -it 通过 ssh : the input device is not a TTY

linux - 重用弹性 IP 时出现 AWS Instance SSH 连接问题

linux - 如何使用 codecommit 设置 git,这样我就不必每次都添加 ssh key ID?

javascript - Google 自动完成地点 HTML5 模式

javascript - javascript 正则表达式中的精确字符串否定

javascript - javascript中的正则表达式忽略换行符

linux - 远程运行 shell 脚本时如何解决依赖关系?