我正在尝试为Wordpress实现搜索REST API。一切都可以用英语正常运行,但是,当我在URL中输入一些阿拉伯语时,它将告诉我rest_no_route
。
这是我的英语工作版本
register_rest_route(
'search',
'/keywords/(?P<value>[\w+].+)',
$args
);
完成一些research之后,建议我将[ء-ي]
添加到我的正则表达式中。但是,由于阿拉伯语从右到左读取,因此我不确定在正则表达式中的添加位置。
我尝试过(?P<value>[ء-ي][\w+].+)
或[ء-ي](?P<value>[\w+].+)
,但仍然无法使用。
有什么建议吗?
默认情况下,PHP中的[\w
速记不匹配Unicode字母和数字。您将需要使用(*UCP)
(可能与(*UTF)
一起使用)PCRE动词,使其与所有Unicode字母/数字匹配。参见example。
根据您的情况,您可以简单地删除\w+
并保留.+
来匹配除换行符以外的任何1+个字符:
/keywords/(?P<value>.+)