如何编写匹配所有有效的西班牙语和阿拉伯语单词的正则表达式。
用我知道的英语来说,它是a-zA-z
,在希伯来语中是א-ת
, 俄语А-Яа-яёЁ
.
我使用 JavaScript。
范围a-zA-Z
因为英语单词的简单和天真令人难以接受。它省略了所有带有重音符号的字母以及在借词等中使用的其他特殊标记。例如,它不会匹配我第一句话中的“naïve”一词。使用\p{Latin}
相反,脚本。
范围א-ת
对于希伯来语来说也是错误的。它省略了希伯来语的表达形式、颂歌符号、意第绪语二合字母等。使用\p{Hebrew}
相反,脚本。
范围А-Яа-яёЁ
对于俄语来说,这又是不完整和错误的。使用\p{Cyrillic}
相反,脚本。
西班牙语字母表使用与英语相同的 26 个字母,加上 ñÑ。但同样,不要将它们硬编码到一个范围内。许多西班牙语单词都使用重音元音。使用\p{Latin}
匹配西班牙语单词的脚本。正则表达式无法帮助您区分西班牙语和英语。
对于阿拉伯语,请使用\p{Arabic}
script.
JavaScript、正则表达式和 Unicode
你说你正在使用 JavaScript。不幸的是,JavaScript 对内置 Unicode 的支持非常少。在 JavaScript 中,您需要使用XRegExp 库和它的统一码插件。这将允许您在正则表达式中使用我上面提到的所有 Unicode 脚本。
脚本与块
始终优先考虑 Unicode 脚本而不是 Unicode 块。块与特定脚本中的代码点匹配不佳。块经常会遗漏许多超出其不完整范围的重要代码点,并且包含许多尚未分配任何字符的代码点。脚本包含所有相关的代码点,仅此而已。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)