4

是否有通过 JavaScript 正则表达式(使用“xregexp”JS library cab)在日语字符串中查找单词边界的解决方案(例如:“私はマーケットに行きました。”)?

例如:

var xr = RegExp("\\bst","g");
xr.test("The string") // --> true

对于日语字符串,我需要相同的逻辑。

4

2 回答 2

6

然而,将日语句子分成单词的实际问题比看起来要复杂得多,因为单词并没有像在英语中那样被分隔成空格。

例如,句子私はマーケットに行きました。(“我去了市场”)有以下词:

  • 私 - watakushi
  • は - 哇
  • マーケット - maaketto
  • に - 你
  • 行きました - ikimashita
  • 。 - (时期)

一个可靠的日语句子解析器除其他外,必须找到句子中的粒子(wa 和 ni)的位置,以便找到剩余的单词。

于 2011-10-28T11:19:03.540 回答
4

\b,\w\W, 在 JavaScript 中不支持 Unicode。您必须将单词边界定义为特定的字符集。喜欢(^|$|[\s.,:\u3002]+)或类似。

\u3002是从('。'.charCodeAt(0)).toString(16)。是日文的标点符号吗?

或者,相反,定义一个 Unicode 范围的单词构造字母并将其否定:

var boundaries = /(^|$|\s+|[^\u30A0–\u30FA]+)/g;

示例片假名范围取自http://www.unicode.org/charts/PDF/U30A0.pdf

于 2011-10-28T10:08:47.650 回答