繁体   English   中英

javascript正则表达式提取最后指定字符后的第一个字符

[英]javascript regex to extract the first character after the last specified character

我试图在字符串中的最后一个下划线之后提取第一个字符,字符串中包含未知数量的'_',但在我的情况下总会有一个,因为我在该过程的另一个步骤中添加了它。

我试过的是这个。 我也尝试了正则表达式从名称中提取,但我的结果是空的。

var s = "XXXX-XXXX_XX_DigitalF.pdf"

var string = match(/[^_]*$/)[1]

string.charAt(0) 

所以最终的期望结果是'D'。 如果RegEx只能告诉我最后'_'背后的内容,那很好,因为我知道我可以使用当前显示的charAt。 但是,如果正则表达式可以完成整个事情,甚至更好。

如果你知道总会有至少一个下划线你可以这样做:

var s = "XXXX-XXXX_XX_DigitalF.pdf"

var firstCharAfterUnderscore = s.charAt(s.lastIndexOf("_") + 1);

// OR, with regex

var firstCharAfterUnderscore = s.match(/_([^_])[^_]*$/)[1]

使用正则表达式,您可以使用括号仅提取一个字母来捕获匹配的那一部分。 但我认为.lastIndexOf()版本更容易阅读。

无论哪种方式,如果输入中没有下划线,您需要添加一些额外的逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM