我试图找到正确的正则表达式以匹配以下模式:
let observer = db.collection('cities').where('state', '==', 'CA')
.onSnapshot(querySnapshot => {
querySnapshot.docChanges().forEach(change => {
if (change.type === 'added') {
console.log('New city: ', change.doc.data());
}
if (change.type === 'modified') {
console.log('Modified city: ', change.doc.data());
}
if (change.type === 'removed') {
console.log('Removed city: ', change.doc.data());
}
});
});
但不是这个:
any_characters--any_characters
区别在于不需要的图案正好具有三个连续的破折号,而所需的图案正好具有两个破折号。
我曾经尝试过any_characters---any_characters
(有点像胸部),但是当然不起作用,因为破折号与(.*)--(.*)
匹配,因此上面的正则表达式将匹配任何东西,只要它具有两个或更多即可破折号。
答案 0 :(得分:4)
如果支持环视,并且您想匹配不带空格的单词,并且单词不能包含---但必须包含-is
(?<!\S)(?!\S*---)\S+--\S+
(?<!\S)
声明左侧的内容不是非空白字符(?!\S*---)
断言右边的内容不是3次--- \S+--\S+
匹配1个以上非空格字符-以及1个以上非空白字符答案 1 :(得分:2)
就像已经写在评论中一样,这应该可以解决问题。
'.*[^-]--[^-].*'