我想比赛
{
"atlas.zcustomer":{
"settings":{
"index":{
"number_of_shards":"5",
"provided_name":"atlas.zcustomer",
"creation_date":"1563288936515",
"analysis":{
"filter":{
"my_stop_word":{
"type":"stop",
"stopwords":[
"ith",
"ihr",
"san",
"tic",
"ltd",
"de",
"la",
"s",
"a",
"inc",
"logistics",
"international"
]
},
"my_length":{
"type":"length",
"min":"3"
}
},
"analyzer":{
"my_fuzzy_analyzer":{
"filter":[
"my_length",
"lowercase",
"my_stop_word"
],
"type":"custom",
"tokenizer":"standard"
}
}
},
"number_of_replicas":"1",
"uuid":"KVI55mDhS4mtumpOqp4mjw",
"version":{
"created":"6060099"
}
}
}
}
}
,
abc_def_ghi
,
abc_abc_ghi
,
abc_a2a_ghi
但不是abc_999_ghi
(abc_xxx_ghi
位于中心)。
我想手动使用前瞻(xxx
),但是我想知道是否还有其他方法可以不手动指定要跳过的字符数。
原始问题是带有数字的,已更新为字符串大小写。
答案 0 :(得分:0)
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您不想确切指定要跳过的字符数,也许可以在否定的前瞻中使用+
之类的量词,并使用否定的字符类来匹配下划线。
\babc_(?!x+_)[^_]+_ghi\b
说明
\babc_
字边界,匹配abc _ (?!
负向查找,断言直接在右边的不是
x+_
匹配1次以上x
,后跟下划线)
提前关闭[^_]+_
否定的字符类,与除_
以外的任何字符匹配1倍以上ghi\b
匹配ghi和单词边界