我尝试使用cloudant执行正则表达式查询,并且无法弄清楚如何进行大小写和重音不敏感查询。
我已尝试过以下操作(不区分大小写):^.*((?i)<needle>).*$
但它不起作用。
对于口音(法语),我甚至不知道如何开始...
答案 0 :(得分:1)
要执行不区分大小写的查询,只需在调用re:run/3或re:compile/2时添加caseless
选项,例如:
18> re:run(<<"abCd">>, <<"c">>, [caseless]).
{match,[{2,1}]}
我不确定是否支持重音不敏感查询,但您可以尝试使用[]
指定替代字母,例如:
12> re:run(<<"abęxo"/utf8>>, <<"[eę]"/utf8>>).
{match,[{2,1}]}
13> re:run(<<"abexo"/utf8>>, <<"[eę]"/utf8>>).
{match,[{2,1}]}
如果这还不够,那么您可能需要检查Unicode support in Erlang和in re
in particular,看看是否支持您想要实现的目标。