Regex 需要正则表达式来提取字符串中的第5到第8个字符

Regex 需要正则表达式来提取字符串中的第5到第8个字符,regex,unix,plsql,Regex,Unix,Plsql,需要一个UNIX正则表达式来提取第4到第8个字母 例如:文件15870712.iis 如果我们想提取Ist的3位数字,我们可以给出 “^([0-9][0-9][0-9])”>158 我需要第五、第六、第七和第八个字符。>0712字母或任何字符?如果后者: /^....(....)/ 这将匹配从位置5到8的数字,并对前4个位置上的任何字符进行汇总 ^.{4}([0-9]{4}) 如果您需要前4个位置也是数字,您可以改为使用: ^[0-9]{4}([0-9]{4}) 它不使用正则表达式,而是完

需要一个UNIX正则表达式来提取第4到第8个字母

例如:文件15870712.iis 如果我们想提取Ist的3位数字,我们可以给出 “^([0-9][0-9][0-9])”>158


我需要第五、第六、第七和第八个字符。>0712字母或任何字符?如果后者:

/^....(....)/

这将匹配从位置5到8的数字,并对前4个位置上的任何字符进行汇总

^.{4}([0-9]{4})
如果您需要前4个位置也是数字,您可以改为使用:

^[0-9]{4}([0-9]{4})

它不使用正则表达式,而是完全按照您的要求执行。根据你的问题,完全没有必要进行复杂的模式匹配。

出于好奇,为什么在子字符串操作时使用正则表达式就足够了,假设您知道确切的索引位置?这是由一个函数使用的,该函数将根据索引位置提取字段…这并不排除使用子字符串的任何理由?这是第4-8个,而不是第5-8个。OP要求使用第4到第8个。既然你提到了这一点,他/她也要求从5号到8号。有趣的是,有两处提到了5-8,只有一处提到了4-8,我看到了奇怪的一处。:)谢谢但这将包括Ist的几个字符。我需要将字母从索引位置5剪切到8。您有权访问分组匹配吗?如果是,请尝试检索组1的内容。您将使用哪种语言?
$letters = substr($string, 4, 4);