我正在尝试仅这样匹配首次出现 假设我们有2个div:
<div>
<span class="time">2016</span>
</div>
<div>
<span class="time">2017</span>
<span class="time">2018</span>
</div>
我想得到 2016年 2017
由于第二个div有2个,所以它只会得到第一个,依此类推,下面是一个使它更简单的示例。
示例
如何仅在此url中匹配首个日期?我应该在正则表达式中添加些什么 有可能吗?
答案 0 :(得分:0)
这里是链接中的架构之一。它找到<div>
,然后跳过所有<span>|<dl>|<dt>|<\span>|<\dl>|<\dt>
,然后匹配第一个<dd>
。如果有多行<span>
,则可能不起作用。如果任何<div>
缺少<dd>
,也可能会中断,但前提是<dd>
可以存在于<div>
之外。如果<span>, <dl>, or <dt>
可以有孩子,它也会中断。这些问题可能有解决方法,但实际上取决于您有多急。
<\s*div\s+[^>]+>\s*(?:<\s*dt\s+[^>]+>\s*|<\s*dl\s+[^>]+>\s*|<\/\s*dl\s*>\s*|<\s*span\s*>[^<]+<\/\s*span\s*>\s*|<\/\s*dt\s*>\s*)+<\s*dd\s+class\s*=\s*"r-time"\s*>([^<]*)<\/\s*dd\s*>\s*
答案 1 :(得分:0)
let input = `<dt class="buyer-feedback">
<span>Всё как описывал продавец, доставка до
города Калининграда долгая!</span>
</dt>
<dd class="r-time">21 Apr 2018 23:37</dd>
</dl>
<div class="f-additional-title" data-spm-
anchor-
id="0.0.0.i1.5dc4OM5cOM5coS">Additional
Feedback </div>
<dl class="buyer-additional-
review">
<dt class="buyer-addition-feedback"></dt>
<dd class="r-time" id="0.0.0.i4.5dc4OM5cOM5coS">22 Apr 2018 08:19
</dd>
</dl>
</div>`;
let s = input.match(/(?<=<\/dt>\n*\s*<dd.*>).*(?=\s*\n*<\/dd>)/g);
console.log(s);
尝试一下
此正则表达式的作用是检查它是否在dt的结束标记之后加上元素dd。
let input = `<dt class="buyer-feedback">
<span>Всё как описывал продавец, доставка до
города Калининграда долгая!</span>
</dt>
<dd class="r-time">21 Apr 2018 23:37</dd>
</dl>
<div class="f-additional-title" data-spm-
anchor-
id="0.0.0.i1.5dc4OM5cOM5coS">Additional
Feedback </div>
<dl class="buyer-additional-
review">
<dt class="buyer-addition-feedback"></dt>
<dd class="r-time" data-spm-anchor-
id="0.0.0.i4.5dc4OM5cOM5coS">22 Apr 2018
08:19</dd>
</dl>
</div>`;
let s = input.match(/(?<=<\/dt>\n*\s*<dd.*>).*(?=<\/dd>)/g);
输出= [“ 2018年4月21日23:37”,“ 2018年4月22日 08:19“]
答案 2 :(得分:0)
$(document).ready(function(){
$('div').each(function(){
console.log($(this).children("span:first").text())
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span class="time">2016</span>
</div>
<div>
<span class="time">2017</span>
<span class="time">2018</span>
</div>
<div>
<span class="time">2019</span>
<span class="time">2020</span>
</div>
<div>
<span class="time">2021</span>
<span class="time">2022</span>
</div>
<div>
<span class="time">2023</span>
<span class="time">2024</span>
<span class="time">2025</span>
</div>