业务中,中文标点符号常常是一个问题,在涉及到一些文本相关的逻辑时,为了避免复杂的逻辑,我们一般统一将中文标点转换为英文标点,再进行相关计算。
示例
var punctuationMap = map[rune]rune{
8216: 39, // '
8217: 39, // '
8220: 34, // "
8221: 34, // "
12290: 46, // .
12304: 91, // [
12305: 93, // ]
65281: 33, // !
65288: 40, // (
65289: 41, // )
65292: 44, // ,
65306: 58, // :
65307: 59, // ;
65311: 63, // ?
}
func PunctuationToEn(text string) string {
text = strings.Map(func(r rune) rune {
if v, ok := punctuationMap[r]; ok {
return v
}
return r
}, text)
return text
}
func TestOther(t *testing.T) {
text := "中国,还!在。?!,;:“”‘'()【】"
t.Log(text)
t.Log(PunctuationToEn(text))
}
以上是提供的常见的,在展现上中英文符号类似的一些中文标点符号的转换,输出结果为:

参考
https://www.cnblogs.com/jjjs/p/4763945.html
https://blog.csdn.net/lichaobxd/article/details/105773492
🚀 易享写作 - 专业在线小说创作工具
欢迎使用 易享写作 (MakeANovel) —— 一款专为小说创作者设计的在线平台。无论您是网文作家、文学爱好者还是故事创作者,这里都能提供您所需的强大工具。
- 人物关系图生成器:可视化梳理复杂角色关系,创作更轻松。
- 在线创作与保存:实时保存,多设备同步,灵感永不丢失。
- 作品系统管理:清晰管理您的所有小说项目和章节。
- 便捷分享与反馈:方便获取读者意见,助力作品完善。


