【问题标题】:Match with all characters after the first 20? [duplicate]匹配前 20 个字符之后的所有字符? [复制]
【发布时间】:2020-01-30 05:18:09
【问题描述】:

如果我有一个长度为 20 个字符的字符串 'asdfasdfasdfasdfasdf`,我不想要任何匹配项。

但是!我想匹配最初 20 之后的每个字符。

asdfasdfasdfasdfasdf(匹配任何其他字符!)

【问题讨论】:

  • 任何特定的语言,或者您只需要正则表达式?您可以在前 20 个字符后尝试使用子字符串
  • 是的,我正在使用 JavaScript,但我想知道是否有正则表达式方式,但是,substr() 可以正常工作
  • @PrasadTelkikar 是的,我同意 substr() 选项,它也更容易阅读。但是,有一种正则表达式方式很酷......

标签: regex


【解决方案1】:

您可以对前 20 个字符使用非捕获组,然后使用捕获组:

/(?:^.{20})(.*)/

此外,您可以使用 slice(20) 或子字符串:

let str = 'aaaaaaaaaaaaaaaaaaaarafael';
let [,match] = /(?:^.{20})(.*)/.exec(str);
console.log(match)

//easier
console.log(str.slice(20))

【讨论】:

  • 非捕获组在这里没用。
【解决方案2】:

正如你所说,你使用的是 javascript,我建议使用 substr(n) 而不是正则表达式解决方案

var str1 = "asdfasdfasdfasdfasdfStackoverflow";
var result = str1.substr(20);  //Stackoverflow
console.log(result)

这非常简单易读

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2013-06-04
    • 2019-11-23
    • 1970-01-01
    相关资源
    最近更新 更多