使用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]
([^#]*?#*)([\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”);