以下正则表达式适用并匹配任何以“How”开头的搜索查询(最多 25 个字符),作为 Google 自定义搜索中的促销查询:
How\b.{0,25}\b
但是,当我使用非拉丁 UTF-8 单词时,它不起作用,例如阿拉伯语“كيف”:
كيف\b.{0,25}\b
有人知道解决方案吗?
以下正则表达式适用并匹配任何以“How”开头的搜索查询(最多 25 个字符),作为 Google 自定义搜索中的促销查询:
How\b.{0,25}\b
但是,当我使用非拉丁 UTF-8 单词时,它不起作用,例如阿拉伯语“كيف”:
كيف\b.{0,25}\b
有人知道解决方案吗?
我对 Google 自定义搜索不是很熟悉,但似乎这是一个 JavaScript 正则表达式,对吧?
如果是这样,那么问题是\b
表示“单词”字符和“非单词”字符之间的边界,其中“单词”字符是 ASCII 字母、下划线或数字 ( [A-Za-z_0-9]
)。
没有真正的通用解决方案;JavaScript 根本不知道 ASCII 范围之外的单个字符,因此它无法分辨哪些是字母,哪些不是。但是你可以这样写:
/^كيف(?:\s.{0,24})?$/
匹配任何只是word 的查询,كيف
或者由 wordكيف
后跟一个空格字符和最多 24 个字符组成的查询。我认为这应该非常接近满足您的要求。