Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pad regex与等长的空格匹配_Regex_Perl_Padding_Sublimetext - Fatal编程技术网

Pad regex与等长的空格匹配

Pad regex与等长的空格匹配,regex,perl,padding,sublimetext,Regex,Perl,Padding,Sublimetext,我正在编写一个极好的文本片段,将标题插入到matlab函数文件中。为此,我有以下几行: % Inputs: % ${3/(\b[^ ,]+\b)|([ ,]+)/(?2: :$1 - Description\n%)/g} 这里,3指捕获的用户输入字符串(例如,函数(${3:inputs}) 正则表达式正在正常工作:比如说inputsisin1,input2。从我的表达式中,我得到: % Inputs: % in1 - Description % input2 - Des

我正在编写一个极好的文本片段,将标题插入到matlab函数文件中。为此,我有以下几行:

% Inputs:
%    ${3/(\b[^ ,]+\b)|([ ,]+)/(?2:    :$1 - Description\n%)/g}
这里,
3
指捕获的用户输入字符串(例如,
函数(${3:inputs})
正则表达式正在正常工作:比如说
inputs
is
in1,input2
。从我的表达式中,我得到:

% Inputs:
%    in1 - Description
%    input2 - Description
但是,我想让
-Description
-
对齐

ST上的文档说正则表达式是Perl风格的


这可以实现吗?

如果您获得所有匹配项,找到第一个捕获组最长的匹配项,然后重建结果,那么可能是可行的。几乎不可能即时完成。通过“即时”你的意思是像我打印的那样在一个正则表达式中。问题是,在代码片段中,我只能访问一个正则表达式来处理输入。是的,“动态”这意味着您要重复搜索和替换内容。由于您对未来的匹配一无所知,因此任何对齐尝试都将失败。不过,是否可以使用一些递归和/或嵌套替换巫术?perl有一个“e”允许您在右侧编写perl代码的标志。这将允许您简单地将最长长度存储在某个变量中,然后填充匹配项。虽然“perl样式”正则表达式支持这一点,但我不太确定。