我正在寻找一种方法来比较字符串值,其中字符串中的某些字符可能是标点符号,例如é
或ô
,但是,应该忽略该惩罚。例如,在搜索名称列表时,用户可能会提供条件Rene
,该条件应与列表条目Rene
和René
匹配(即ASCII 101和233应视为相同的内容)
感谢名单
编辑:最好是所有UNICODE字符。我想有人可以[应该]为此实现一些自定义解决方案;我只是想知道是否存在已经存在的东西 - 几乎像Char.GetBaseCharacterFromPunctuatedCharacter(char)
:P
答案 0 :(得分:1)
你没有说你正在使用哪种语言,所以我用java回答。其他语言也有类似的结构。另外,你的意思是变音符号,而不是punctuation(。,?!...)
collator类支持比较的力量。例如,对于捷克语,变音符号的差异被认为是次要的差异。
或者您可能希望在比较之前通过unicode规范分解(将所有字符分解为基本字母+变音符号)删除任何变音符号,然后通过简单的正则表达式删除变音符号(有关{{1的说明,请参阅this SO question }})。在java中:
InCombiningDiacriticalMarks