我在.Net中有以下正则表达式
(?<=Visitors.{0,100}?"value">)[0-9,]+(?=</div>)
和以下文本
<div class="text">Visitors</div> <div class="value">14,000,000</div>
<div class="text">VisitorsFromItaly</div> <div class="value">15,200</div>
我在正则表达式中指定“Visitors”或“VisitorsFromItaly”,然后我得到特定数量的访客数。
我想在 javascript 中执行此操作,但不使用任何 .replace 方法。我只需要一个简单的 javascript 正则表达式。我是 javascript 正则表达式的新手,所以我不知道如何转换它。它说 javascript 不支持lookbehind,这就是我的 .Net 正则表达式工作的原因。
如有任何帮助,我们将不胜感激。预先非常感谢!!!
最佳答案
我不确定我是否理解您的意思...您真的需要后向断言吗?
你不能像下面这样匹配吗?
myRegex = /Visitors.{0,100}"value">([0-9,]+)/; // or with /g modifier on the end?
myMatches = myRegex.exec(stringToMatch);
myMatches[0] 包含整个匹配的字符串。 myMatches[1] 及更高版本将包含第一个、第二个等捕获组,在正则表达式中用括号表示。在本例中,myMatches[1] 包含该数字。
由于您似乎不需要在数字之前匹配任何其他内容(除了访问者等),因此我认为您根本不需要后向断言。
关于JavaScript 不支持正向回顾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1272765/