RegEx JavaScript:数字后的符号提取

时间:2016-05-17 13:41:31

标签: javascript regex

我的数据:

abc3# de2! fghi1?

我需要的是一个RegEx,它将提取位于数字(1,2或3)之后的符号,以便匹配为:#!,{{1} }

我已经研究过非捕获组等但无法使其正常工作:?

3 个答案:

答案 0 :(得分:1)

正则表达式或多或少是正确的,我使用

\d([^\w\s]+)

然后你需要使用RegExp#exec

var re = /\d([^\w\s]+)/g;                  // Declare the regex
var str = 'abc3# de2! fghi1?';
var res = [];
while ((m = re.exec(str)) !== null) { // find a match
    res.push(m[1]);                   // Get the captured value only
}
document.body.innerHTML = "<pre>" + JSON.stringify(res, 0, 4) + "</pre>";

正则表达式匹配

  • \d - 数字
  • ([^\w\s]+) - 一个匹配1 +非字和非空白符号的捕获组。

如果您想确保仅匹配“字词”或字符串的末尾,则可以使用/\d([^\w\s]+)(?=\s|$)/g正则表达式。

答案 1 :(得分:0)

您需要\d(\W)来捕获数字后的符号,请参阅live demo

答案 2 :(得分:0)

Capturing symbol after n number of digits

yourDataFrame <- yourDataFrame %>% mutate(is_a = (x=='A')||(y=='A'))

Extracting the symbol from string in JavaScript

\d([\:#!\?])

Removing all occurrences of symbol in a string

var symbol = /\d([\:#!\?])/.exec('kljl2324?')[1];