使用Javascript正则表达式从HTML中提取文本

使用Javascript正则表达式从HTML中提取文本,javascript,regex,Javascript,Regex,我试图解析一个网页,并在YM#之后获取数字参考。例如,我需要从包含 YM#1234-234234 非常感谢你对某人的帮助 Rich试试这个: ([^#]*?#*)([\d\-]+)\b 并在$2(?!YM\s)([\d-]+)中获得结果 这将与数字匹配。目前,您的正则表达式仅在破折号前有一个数字,破折号后有一个数字时匹配。这将使您在每个位置获得一个或多个数字: /YM#[0-9]+-[0-9]+/g 然后,您还需要捕获它,因此我们使用cgroup来捕获它: /YM#([0-9]+-[0-9]

我试图解析一个网页,并在
  • YM#之后获取数字参考。例如,我需要从包含

  • YM#1234-234234
  • 非常感谢你对某人的帮助

    Rich

    试试这个:
  • [^#]*?#*)([\d\-]+)\b

  • 并在
    $2
    (?!
  • YM\s)([\d-]+)
  • 中获得结果


    这将与数字匹配。

    目前,您的正则表达式仅在破折号前有一个数字,破折号后有一个数字时匹配。这将使您在每个位置获得一个或多个数字:

    /YM#[0-9]+-[0-9]+/g
    
    然后,您还需要捕获它,因此我们使用cgroup来捕获它:

    /YM#([0-9]+-[0-9]+)/g
    
    然后我们需要再次引用捕获组,因此我们使用以下代码而不是String.match

    var regex = /YM#([0-9]+-[0-9]+)/g;
    var match = regex.exec(text);
    var id = match[1];
     // 0: match of entire regex
     // after that, each of the groups gets a number
    

    var text=document.body.innerHTML;console.log(文本);text=text.replace(/(]+)>)/ig',);var id=text.match(/YM#[0-9]-[0-9]/g);我知道我离这里很远!谢谢你告诉我怎么做。一开始它实际上不起作用,但它离我太近了,我自己设法修好了。它需要介于#和[之间,因为有一个空格。非常感谢Jasper!尝试:
    result=subject.replace(/(
  • [^#]]*?#*)([\d]+)\b/g,“$2”);