4

以下正则表达式适用并匹配任何以“How”开头的搜索查询(最多 25 个字符),作为 Google 自定义搜索中的促销查询:

How\b.{0,25}\b

但是,当我使用非拉丁 UTF-8 单词时,它不起作用,例如阿拉伯语“كيف”:

كيف\b.{0,25}\b

有人知道解决方案吗?

4

1 回答 1

0

我对 Google 自定义搜索不是很熟悉,但似乎这是一个 JavaScript 正则表达式,对吧?

如果是这样,那么问题是\b表示“单词”字符和“非单词”字符之间的边界,其中“单词”字符是 ASCII 字母、下划线或数字 ( [A-Za-z_0-9])。

没有真正的通用解决方案;JavaScript 根本不知道 ASCII 范围之外的单个字符,因此它无法分辨哪些是字母,哪些不是。但是你可以这样写:

/^كيف(?:\s.{0,24})?$/

匹配任何只是word 的查询,كيف或者由 wordكيف后跟一个空格字符和最多 24 个字符组成的查询。我认为这应该非常接近满足您的要求。

于 2012-11-01T17:13:01.540 回答