对于英语,我可以使用类似的东西
"specialCharactersFilter": {
"pattern": "[^A-Za-z0-9]",
"type": "pattern_replace",
"replacement": ""
}
}
删除非文本字符。
但是,对于亚洲人这样的非ASCII语言,上述过滤器会删除所有有效的非特殊字符。
如何从亚洲语言中删除特殊字符?
答案 0 :(得分:2)
pattern_replace
过滤器中使用的正则表达式样式似乎是java.util.regex
。
要删除除Unicode字母和十进制数字以外的任何其他字符,您可以使用
"specialCharactersFilter": {
"pattern": "[^\\p{L}\\p{Nd}]",
"type": "pattern_replace",
"replacement": ""
}
要确保只保留ASCII数字并删除所有印地语,泰米尔语等数字,可以使用类似的变体
"pattern": "[^\\p{L}0-9]"
请参见regex demo。