如何为所有语言创建字母数字正则表达式?
我今天遇到了这个问题:
这个正则表达式仅匹配英语:[a-zA-Z0-9]
。
如果我需要对这个世界上任何语言的支持,我应该编写什么正则表达式?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我今天遇到了这个问题:
这个正则表达式仅匹配英语:[a-zA-Z0-9]
。
如果我需要对这个世界上任何语言的支持,我应该编写什么正则表达式?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
字母/字母:
\p{L}
数字:
\p{N}
因此,对于所有语言的字母匹配,您可以使用:
[\p{L }\p{N}]+
我一直在寻找一种方法,用 JS 中的空格替换所有语言的所有非字母字符,最终使用以下方法来实现:
这里是 JS,我们需要在末尾添加 u 以使正则表达式 unicode 感知, g 代表全局,因为我想要匹配所有实例而不仅仅是单个实例。
参考文献:
https://www.linkedin.com/pulse/regex-one-pattern-rule-them-all-find-bring-darkness-bind-carranza/?trackingId=U6tRte%2BzTAG6O4AA3CrFmA%3D%3D
https://www.regular-expressions.info/unicode.html
Alphabet/Letter:
\p{L}
Number:
\p{N}
So for alphnum match for all languages, you can use:
[\p{L}\p{N}]+
I was looking for a way to replace all non-alphanum chars for all languages with a space in JS and ended up using the following way to do it:
Here as it is JS, we need to add u at end to make the regex unicode aware and g stands for global as I wanted match all instances and not just a single instance.
References:
https://www.linkedin.com/pulse/regex-one-pattern-rule-them-all-find-bring-darkness-bind-carranza/?trackingId=U6tRte%2BzTAG6O4AA3CrFmA%3D%3D
https://www.regular-expressions.info/unicode.html
如果您使用字符类简写和 Unicode 识别正则表达式引擎,您就可以做到这一点。
\w
类匹配“单词字符”(字母、数字和下划线)。请注意某些正则表达式风格不能很好地做到这一点:JavaScript 使用 ASCII 表示
\d
(数字)和\w
,但使用 Unicode 表示\s< /代码>(空格)。 XML 则相反。
If you use character class shorthands and a Unicode aware regex engine you can do that. The
\w
class matches "word characters" (letters, digits, and underscores).Beware of some regex flavors that don't do this so well: JavaScript uses ASCII for
\d
(digits) and\w
, but Unicode for\s
(whitespace). XML does it the other way around.支持大多数语言的正则表达式
^[A-zÀ-Ÿ\d-]*$
Regex supporting most languages
^[A-zÀ-Ÿ\d-]*$
下面的正则表达式是唯一对我有用的正则表达式:
如果您想清除文本中的任何非字母数字字符,您可以使用以下命令:
The regex below is the only one worked for me:
If you want to clean your text from any non alphanumeric characters you can use the following: