0

我正在使用 wordpress 的插件 CFDB,并且正在尝试过滤带有重音符号的名称。

插件的创建者告诉我它正在使用正则表达式。

过滤器正在使用模式修饰符(如不区分大小写的“i”)工作:

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

现在,我想为重音不敏感添加一种“模式修饰符”。我尝试添加口音和它们的 unicode 翻译,但它不适用于短代码。任何想法?

4

1 回答 1

0

忽略重音,即与 匹配"é""e"不能用单个 unicode 点字符“优雅地”完成。您必须执行以下操作:

/jos[eé]/i

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

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

/jose\p{M}?/i

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

于 2015-08-18T18:04:59.840 回答