Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Regex 正则表达式从特定位置提取四个数字的第一部分_Regex - Fatal编程技术网

Regex 正则表达式从特定位置提取四个数字的第一部分

Regex 正则表达式从特定位置提取四个数字的第一部分,regex,Regex,如何使用正则表达式从以下字符串中提取第8个数字之后的四个数字,该数字是动态的 20190715171712904_10008_file_activate_10.20.30.4000233223456_name.unl 20190715141712904_10008_runco_activate_10.20.30.40_name.unl 从第一个字符串我要1717 从第二个字符串我要1417 我试着在e 我尝试了^\d{8}([0-9]{4})$,但不起作用。放下$。它强制表达式在您的4位数

如何使用正则表达式从以下字符串中提取第8个数字
之后的四个数字,该数字是动态的

20190715171712904_10008_file_activate_10.20.30.4000233223456_name.unl 

20190715141712904_10008_runco_activate_10.20.30.40_name.unl
从第一个字符串我要1717

从第二个字符串我要1417

我试着在e


我尝试了
^\d{8}([0-9]{4})$
,但不起作用。

放下
$
。它强制表达式在您的4位数字之后查找字符串的结尾,而不是。答案将出现在第一个子组捕获中。注意:第二个
[0-9]
也可以使用
\d

如果您的语言支持look behinds,则可以将您的数字捕获为主捕获,而不是子组:

(?<=^\d{8})\d{4}

(?删除尾端的
$
。*最后。$表示正则表达式匹配字符串的结尾。工作正常,您知道其他方法而不向后看吗?@omarivectoromosa是的,您发布的内容没有
$
。答案中有。结果将在第一个子组匹配中。@omarivectoromosa另一个想法发生在我-可能完全不使用正则表达式是有益的-也添加了这一点。如果不使用正则表达式,您会使用什么其他表达式?我使用的系统有一个用于过滤的正则表达式框,这就是我使用它的原因