繁体   English   中英

JS中的正则表达式:查找一串以字符开头的数字

[英]Regex in JS: find a string of numbers that are preceded by a character

我想找到一个数字子串。 该子字符串将以句点开头.

示例字符串: myString = 12v3i$#@.789v10vvi4e9k应该返回789

我的(非常hacky)解决方案:

  1. 查找期间的位置.
  2. 遍历字符串中下一个字符,如果它在[0-9]中,则将其添加到我正在构建的字符串中。 如果没有,请打破循环。

我是regex的新手(假设这里是正确的工具),那么如何用regex做到这一点?

console.log(/\.(\d+)/.exec("12v3i$#@.789v10vvi4e9k")[1]);
# 789

RegEx在线演示

正则表达式可视化

Debuggex演示

\\. 将匹配. 字符(由于它在RegEx中具有特殊含义,我们需要使用\\对其进行转义),然后再加上1个数字\\d+ 我们仅对这些数字进行分组,并使用[1]将其放入输出数组中

您可以使用

var match = myString.match(/\.(\d+)/);

这将返回数组,其中第一个元素是整个匹配项,第二个元素包含第一个捕获组的值(即数字)。

我希望该表达非常简单,但是:

  • \\. 匹配. 从字面上看( .是表达式中的特殊字符,因此必须转义)
  • \\d+匹配一个或多个数字

要了解正则表达式: http : //www.regular-expressions.info/tutorial.html

你可以这样做:

console.log("12v3i$#@.789v10vvi4e9k".match(/\.(\d+)/).pop());

\\. 匹配文字.

\\d+匹配一个或多个数字。

暂无
暂无

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

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