我正在为后端服务器编写清漆模块(VCL)。它需要从未定义长度的字符串中提取n个字符的逻辑。
我用正则表达式尝试了vcl的regsub()函数,将字符串的一部分替换为空白。
我需要提取字符串的前20个字符。当字符串长度为36时,我使用正则表达式将最后16个字符替换为空白。 但是,当字符串的长度不确定时,说40。我得到24个字符而不是20个字符。我该如何实现?
set req.http.mysubstr = regsub(req.http.mystring, ".{16}$", "");
set req.http.mysubstr = regsub(req.http.mystring, ".{($variable)}$", ""); # $variable should be the length of the string - first 20 characters
答案 0 :(得分:0)
使用捕获组:
regsub(req.http.mystring, "^(.{20}).*", "\1")
在regex101.com上测试