Javascript正则表达式在文件末尾提取计数

标签 javascript regex

我对正则表达式还很陌生,需要一些帮助。

最终目标是捕获文件名中句点之前的最终数字序列。例如,我想从“test687.09ew0_d04.jpg”中提取“04”。另一个例子是来自“039lksdkl3200dj787.jpg”的“787”。

到目前为止,这是我的正则表达式:

/([0-9]+)(?:\.[\s\S]+)$/

我的理解是 ([0-9]+) 匹配从 1 到 9 的任意数量的数字。

(?:\.[\s\S]+) 指定数字后必须跟一个点和任意数量的字符,?:标记它不应该被捕获,而是用于匹配。

最后的 $ 意味着只有当要求在字符串的末尾而不是其他地方时才匹配。

但是,它不起作用。非捕获组在我的匹配中返回,正则表达式不要求匹配位于字符串的末尾。

最佳答案

你可以使用 negated character class比如[^.]来匹配文件名末尾的所有非.字符,[^.]+$

然后匹配文字.字符,\.,并捕获前面的数字,(\d+)

(\d+)\.[^.]+$

上面的表达式将在字符串 test687.09ew0_d04.jpg - example here 中捕获 04 .

关于Javascript正则表达式在文件末尾提取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41915642/

相关文章:

javascript - 在幻灯片末尾停止 Twitter Bootstrap Carousel

javascript - 如何使用 Append Jquery

javascript - map 在检查元素或缩放后工作

javascript - 如何在 Javascript 中使用 .split 最好地解析文本文件

ruby-on-rails - 未设置正则表达式全局变量

javascript - 使用 JavaScript 巧妙地设置时间格式

javascript - 将 typescript 字符串文字类型转换为字符串数组

javascript - node-webkit 和 mysql 查询

Javascript 用正则表达式替换,但仅替换第一个字符

python - 月份和年份的正则表达式,不包括某些单词