我正在使用 wordpress 的插件 CFDB,并且正在尝试过滤带有重音符号的名称。
插件的创建者告诉我它正在使用正则表达式。
过滤器正在使用模式修饰符(如不区分大小写的“i”)工作:
[cfdb-datatable form="DB" filter="Name~~/.*$_GET(value2filter).*/i"]
现在,我想为重音不敏感添加一种“模式修饰符”。我尝试添加口音和它们的 unicode 翻译,但它不适用于短代码。任何想法?
我正在使用 wordpress 的插件 CFDB,并且正在尝试过滤带有重音符号的名称。
插件的创建者告诉我它正在使用正则表达式。
过滤器正在使用模式修饰符(如不区分大小写的“i”)工作:
[cfdb-datatable form="DB" filter="Name~~/.*$_GET(value2filter).*/i"]
现在,我想为重音不敏感添加一种“模式修饰符”。我尝试添加口音和它们的 unicode 翻译,但它不适用于短代码。任何想法?
忽略重音,即与 匹配"é"
,"e"
不能用单个 unicode 点字符“优雅地”完成。您必须执行以下操作:
/jos[eé]/i
为了匹配 , 的重音变体Jose
,你必须在你的应用层中构建正则表达式,它必须知道每个字母的所有变体。
但是,如果您的输入字符使用变音符号(与前一个字符“组合”的单独代码点)进行重音,您可以使用 posix 变音符号类\p{M}
,例如:
/jose\p{M}?/i
然后你可以\p{M}?
在每个字母(或者可能只是每个元音)之后插入来创建正则表达式。