Regex 从开始将文件名与版本匹配
下面是一个正则表达式,用于匹配从字符串开头到(但不包括)第一个点的所有内容:Regex 从开始将文件名与版本匹配,regex,Regex,下面是一个正则表达式,用于匹配从字符串开头到(但不包括)第一个点的所有内容: ^[^.]+ 即: string | matched part ---------------------- foo.txt | foo foo.tar.gz | foo 我需要调整它,使它应该包括像“1.15”或“1.5.1”的东西。即: string | matched part ------------------------------- foo_1.15.txt
^[^.]+
即:
string | matched part
----------------------
foo.txt | foo
foo.tar.gz | foo
我需要调整它,使它应该包括像“1.15”或“1.5.1”的东西。即:
string | matched part
-------------------------------
foo_1.15.txt | foo_1.15
foo_1.5.1.tar.gz | foo_1.5.1
有可能吗?您可以使用:
^[^.]+[.0-9]*(?=\..+$)
编辑:要同时匹配aaa
、aaa\u 1
、aaa\u 1.15
和aaa\u 1.15.20
,您可以将\.+
部分设置为可选部分,该部分赋予此正则表达式:
^[^.]+[.0-9]*(?=(?:\..+)?$)
投票表决通过。但是,您能否对其进行改进,使其与以下情况相匹配:
aaa
,aaa\u 1
,aaa\u 1.15
,aaa\u 1.15.20
?每个字符串都应该从头到尾匹配。我在最初的问题中没有满足这个要求,但这是隐含的假设。@johnc.j。我已经更新了答案;希望有帮助:)