正则表达式截取指定中文子串
来源:15-2 正则表达式

qq_lcy_7
2020-03-09
老师好,关于正则截取中文字符串中特定子串,不知道如何实现。
比如 有如下一个函数,
// src 原字符串
// prefix 起始字符串
// suffix 结束字符串
func getSubStringByRex(src string,prefix string, suffix string){
// 对于src字符串(有可能为中文),截取 prefix开始至suffix 中间的字符串内容(开区间)。
该如何实现
}
网上找了很多方法,尝试了很多都失败了,烦请...过目....
写回答
1回答
-
ccmouse
2020-03-11
就这个问题本身不推荐使用正则表达式。又有中文,prefix和suffix又是用户输入,里面的坑非常多。可能就算调对了也不能保证有什么奇怪的输入会挂。而且如果prefix和suffix嵌套又怎么处理?我建议还是人肉分别查找prefix和suffix靠谱一些。
实在要用正则表达式,至少用regexp.QuoteMeta来确保传入的参数被转义。我用下面这个正则表达式试了一下,简单的输入输出还是对的。
fmt.Sprintf("(%s.*)%s", regexp.QuoteMeta(prefix), regexp.QuoteMeta(suffix))
00
相似问题
不能获取每个用户的信息
回答 1
正则匹配问题
回答 2