簡體   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