正则表达式重音对短代码不敏感

时间:2015-08-18 16:52:09

标签: regex wordpress-plugin accent-insensitive

我正在使用wordpress'插件CFDB和我尝试使用重音过滤名称。

插件的创建者告诉我它正在与Regex合作。

过滤器正在使用模式修饰符(如不区分大小写" i"):

[cfdb-datatable form="DB" filter="Name~~/.*$_GET(value2filter).*/i"]

现在,我想添加一种"模式修饰符"对重音不敏感。我已经尝试添加重音和他们的unicode翻译,但它不适用于短代码。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

忽略重音,即将"é""e"匹配,无法使用单个unicode点字符“优雅地”完成。你必须做类似的事情:

/jos[eé]/i

要匹配Jose的重音变体,您必须在应用层中构建正则表达式,这必须知道每个字母的所有变体。

但是,如果您的输入字符使用diacritic marks重音(与前一个字符“组合”的单独代码点),您可以使用posix变音符号类\p{M},例如:

/jose\p{M}?/i

然后你可以在每个字母(或者可能只是每个元音)之后插入\p{M}?来创建正则表达式。