在一个奇数长度的字符串中,如何匹配(或捕获)中间字符?
使用PCRE、纯Perl或Java正则表达式风格是否可行?
在.NET正则表达式中,您可以使用平衡组轻松解决它(这可能是一个很好的例子)。通过纯Perl正则表达式,我的意思是不使用任何代码构造,比如
该字符串的长度可以是任何奇数。
例如,在字符串
这是关于现代正则表达式风格的可能性而不是其他方式中最佳算法的问题。
使用PCRE、纯Perl或Java正则表达式风格是否可行?
在.NET正则表达式中,您可以使用平衡组轻松解决它(这可能是一个很好的例子)。通过纯Perl正则表达式,我的意思是不使用任何代码构造,比如
(??{ ... })
,您可以在其中运行任何代码并且当然可以进行任何操作。该字符串的长度可以是任何奇数。
例如,在字符串
12345
中,您将想要获取3
,即字符串中心的字符。这是关于现代正则表达式风格的可能性而不是其他方式中最佳算法的问题。
/^(.*)(.)(??{ '.' x length($1) })\z/s
。 - ikegami//
之间的所有内容都是Perl正则表达式。至于递归,我指的是正则表达式递归,而不是Perl递归。 - ikegami(??{ ... })
和类似的地方嵌入任何代码,以实现任何功能。我应该删除Perl标签还是让它更清晰明了? - Qtax