用 tftp 的正则表达式替换字符串
Replace string by regex for tftp
我想使用 tftp-hpa
文件重映射功能(参见 the man page)。它使用正则表达式,但功能不多。我想要的是当客户端发送 foo
的请求时,服务器发送 client_IP/foo
。目前我有这个规则:
r foo \i/foo
但是正如您所猜到的,它只对 foo
有效,而我希望它在任何请求下都能正常工作。我已经试过了:
r /.*/ \i//.*/
但是没用。由于文档和示例不多,我不知道该尝试什么,所以也许您可以提出一些建议。 (所以,是的,我知道这不是一个真正的编程问题,但作为程序员,你知道正则表达式,也许你会得到很好的答案)
您需要将匹配的字符串包含到替换中。括号标记位置匹配,从 1:
开始
r /(.*)/ \i\//
应该可以解决问题(未验证)
看起来您需要使用替换模式:如文档中所述,[=11=]
代表 "entire string matched by the regex"。所以尝试:
r .* \i/[=10=]
我想使用 tftp-hpa
文件重映射功能(参见 the man page)。它使用正则表达式,但功能不多。我想要的是当客户端发送 foo
的请求时,服务器发送 client_IP/foo
。目前我有这个规则:
r foo \i/foo
但是正如您所猜到的,它只对 foo
有效,而我希望它在任何请求下都能正常工作。我已经试过了:
r /.*/ \i//.*/
但是没用。由于文档和示例不多,我不知道该尝试什么,所以也许您可以提出一些建议。 (所以,是的,我知道这不是一个真正的编程问题,但作为程序员,你知道正则表达式,也许你会得到很好的答案)
您需要将匹配的字符串包含到替换中。括号标记位置匹配,从 1:
开始r /(.*)/ \i\//
应该可以解决问题(未验证)
看起来您需要使用替换模式:如文档中所述,[=11=]
代表 "entire string matched by the regex"。所以尝试:
r .* \i/[=10=]