2015-10-19 76 views
0

我偶然發現了一個工具,該工具檢查文本中使用的單詞是否來自前1000個最常用單詞(英語或基於某些形式的數據庫) - http://xkcd.com/simplewriter/立陶宛語字母在xkcd的簡單作家(Ace編輯器)中將文字拆分爲單詞

我很感興趣,它是如何構建的,我很納悶,爲什麼立陶宛的字符,如ąčęėįšųūž被視爲單詞邊界

正如我所看到的,字符集設置爲UTF-8,所以這些字母不應該被虐待。
我正在考慮爲立陶宛語建立一個類似的工具,並且知道什麼標準詞被拆分或Ace編輯器代碼的哪個部分負責將是非常有用的。

王牌編輯代碼:https://github.com/ajaxorg/ace-builds/blob/master/src/ace.js

+1

它是開源的,爲什麼不試試先搞清楚自己呢? –

+2

我投票結束這個問題作爲題外話,因爲它是一個外包請求。 –

回答

1

ąčęėįšųūž不視爲王牌字邊界,您可以檢查由一個單詞雙擊與他們

之一,但自定義模式http://xkcd.com/simplewriter/使用http://xkcd.com/simplewriter/ace/src-min/mode-upwriter.js 沒有按「T把它們當作字字符並使用/[a-zA-Z]+/作爲一個正則表達式

this.$rules = { 
"start": [ 
    { 
     "token" : "suffix", 
     "regex" : "['’][a-zA-Z]+" 
    }, 
    { 
     "token" : "allowed", 
     "regex" : "\\b(?:" + window.__WORDS + ")\\b", 
     "caseInsensitive": true 
    }, 
    { 
     "token" : "disallowed", 
     "regex" : "[a-zA-Z]+" 
    } 
] 
+0

我對立陶宛語(LT)字符進行了一些測試:http://regexr.com/3c28u 在regexp字段中,我添加了幾個正確的LT字。 LT字符的解釋看起來有點不妥。 LT字符之後的空間不被視爲字邊界(例如「neš」),但任何非LT字母是(例如「nešt」)。 LT字符也不是(例如「nešš」)。 – Justas

+0

正如我所說\ b在js正則表達式中只支持英文字符 –

+0

有沒有可能解決這個問題? – Justas

相關問題