【发布时间】:2017-06-10 07:34:05
【问题描述】:
我正在阅读的文件有时包含中文和英文以外的其他语言字符。
如何编写只读取英文单词/字母的正则表达式?
应该只是/^[a-zA-Z]+/吗?
如果我执行上述操作,则仍会选择“eété”之类的词,但我不希望这样:
"été".match(/^[a-zA-Z]+/) => #nil good I didn't want that word
"eété".match(/^[a-zA-Z]+/) => #not nil tricked into picking something I did not want
【问题讨论】:
-
与流行观点相反,并非所有英语单词都能不受干扰地适应 ASCII。法语词源通常是这种情况(例如,naïve)。
-
真的。是的,它是法语。但是如果我可以将上面的正则表达式应用于单词中的每个字符,那么它可能会起作用..
-
你如何建议拒绝像
eété这样的词,同时仍然捕获像café这样的词? -
并非英语以外的所有语言都有
[a-zA-Z]之外的字符。因为 Unicode 联盟拒绝了克林贡文字,所以除非您使用 Unicode 的私人用户区,否则克林贡语言以拉丁字母表示。但是您不必在第一次迭代中处理这个问题。