登录
首页 >  Golang >  Go问答

如何使用正则表达式提取可打印字符

来源:stackoverflow

时间:2024-02-15 22:18:23 352浏览 收藏

一分耕耘,一分收获!既然都打开这篇《如何使用正则表达式提取可打印字符》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我有一个 go 服务器应用程序,用于处理和保存用户指定的名称。我真的不在乎叫什么名字;如果他们希望它以象形文字或表情符号的形式出现,那也可以,只要大多数客户可以显示它即可。基于这个 c# 问题,我希望使用

^[^\p{Cc}\p{Cn}\p{Cs}]{1,50}$

基本上是 1-50 个非控制字符、未分配字符或部分 utf-16 字符的字符。但go不支持cn。基本上我找不到一个合理的正则表达式来匹配任何可打印的 unicode 字符串,但不匹配“퟿͸”,例如。

我想使用正则表达式,因为客户端不是用 go 编写的,我希望能够精确匹配服务器验证。目前尚不清楚如何匹配其他语言中的 isprint 等函数。

除了将未分配的 unicode 范围硬编码到我的应用程序中并单独检查这些范围之外,还有什么方法可以做到这一点?


正确答案


您可能只想使用这些 unicode 字符类:

  • l(字母)
  • m(马克)
  • p(标点符号)
  • s(符号)

这会给你这个[正]正则表达式:

^[\pl\pm\pn\pp\ps]+$

或者,测试您不需要的 unicode 字符类:

  • z(分隔符)
  • c(其他)

同样,正则表达式:

^[^\pZ\pC]+$

今天关于《如何使用正则表达式提取可打印字符》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>