查询 - 案例和重音不敏感

时间:2016-02-22 05:45:16

标签: regex erlang cloudant

我尝试使用cloudant执行正则表达式查询,并且无法弄清楚如何进行大小写和重音不敏感查询。

我已尝试过以下操作(不区分大小写):^.*((?i)<needle>).*$但它不起作用。

对于口音(法语),我甚至不知道如何开始...

1 个答案:

答案 0 :(得分:1)

要执行不区分大小写的查询,只需在调用re:run/3re: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 Erlangin re in particular,看看是否支持您想要实现的目标。