我正在构建一个应用程序,我需要在匹配之前和之后捕获字符。这似乎没问题,除非周围捕获中有多个匹配。
正则表达式:
.{0,10}(?=abc)
在找到字符串“abc”之前,最多可捕获10个字符。
如果前一个文本中的匹配重复出现,则会出现此问题:
"qqqqabcabcqqq"
根据上述文本,我希望有两个捕获:
qqqq (the 4 characters before the first abc occurrence)
qqqqabc (the 7 characters before the second abc occurrence)
我不是,但得到这些比赛。我得到的唯一一个匹配是:
qqqqabc
我确信我错过了什么,但我不确定是什么。我相信我的正则表达式在某种程度上太贪婪了,所以它忽略了第一场比赛,支持更大的第二场比赛。这就是我需要的:
我需要一个正则表达式:
1。适用于.NET
2. 在字符串S完全匹配之前,在字符串中查找X个字符。
3. 包括在S之前的X个字符中找到的S(呼叫S')上的任何辅助匹配
4。并不关心这些角色是什么。
我向你保证,我尝试寻找类似的答案,但我找不到任何直接回答这个问题的东西(这已经困扰了我两天。是的,我必须使用正则表达式)。至于Regex风味,我在.NET工作。
非常感谢您的帮助。
答案 0 :(得分:2)
这是:
foods=document.getElementsByClass("food");
foods.forEach(function(food){
collision(basket,food);
});
我花了一些时间来记住.NET允许具有可变性的积极外观。
我改变了初始版本的工作方式。
希望它有所帮助!
PS:我已经命名了这个小组,但是如果你想要一个不那么混乱的正则表达式,你显然可以自由地保持它无名并与编号组合作:(?<=(?<CharsBefore>.{0,10}))(?=abc)