gpt4 book ai didi

javascript - 正则表达式匹配字母——包括非拉丁字母,但不包括表情符号

转载 作者:行者123 更新时间:2023-11-29 10:31:35 26 4
gpt4 key购买 nike

我需要一个 javascript 正则表达式来匹配任何语言的单词,但不能匹配表情符号或任何其他字符。此处的解决方案:Regular expression to match non-English characters?匹配所有字母加上象形图和表情符号 ([^\u0000-\u007F]+)。

稍微修改一下似乎可以满足我的需要,但我不确定它的安全性如何:([a-zA-Z]|[^\u0000-\u007F\u200d-\u3299\ud83c-\udfff\ufe0e\ufe0f])+

例子:美国🇺🇸Österreich🇦🇹Россия🇷🇺ελλìδα🇬🇷

应该只匹配字母并在表情符号之前停止。不应将表情符号与字母表示相匹配,例如:1️⃣#️⃣*️⃣

相关:http://www.unicode.org/Public/emoji/5.0/emoji-variation-sequences.txt

背景信息:我正在尝试修补此解析器:https://github.com/Khan/simple-markdown/blob/master/simple-markdown.js#L1304打破表情符号,因为目前它匹配尽可能多的文本。如果没有通过该解析器匹配/替换表情符号是有问题的。从突出显示的正则表达式中删除 \u00c0-\uffff 完成我需要的,但解析器开始分解单词。有些语言(西里尔字母)每个字母都会被打断,这对性能不利。我需要修补该正则表达式以允许字母,但不允许表情符号,或者放置一个正则表达式来捕获它前面的所有文本。

编辑:添加了一些示例

编辑:添加了语言限制

最佳答案

我在这里找到了解决方案:https://mathiasbynens.be/notes/es-unicode-property-escapes#word

本质上是 /[\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\p{Join_Control}]/u 给定 Unicode 属性转义支持。

在 JavaScript 原生支持 \p 之前,您可以 transpile this regex .

关于javascript - 正则表达式匹配字母——包括非拉丁字母,但不包括表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44788737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com