晚安,
我目前正在基于正则表达式匹配在C#中开发一个非常简单的人类语言词汇分析器,我目前面临的问题是指定一个可以匹配目标语言中每个可能的标点符号的正则表达式,另一个是也可以匹配各种空白。在Stack Overflow和另一个站点搜索之后,我发现我可以分别使用正则表达式\p{P}
作为标点符号,并使用\p{Z}
作为空格,并且在从文本文件中读取时它可以正常工作。问题是,在最终的程序中,需要从SQL数据库中读取记录并使用这个词法分析器处理它们,我不知道数据库中记录的编码是什么。在这种情况下这可能是个问题吗?所提到的正则表达式是否可以匹配输入的每个标点符号和空白字符,无论它们的编码是什么?
非常感谢。
答案 0 :(得分:2)
.NET Framework将字符串从数据库转换为Unicode。它是否正确地转换它们取决于是否告诉它数据库文本编码是什么。但是Regex
看到的字符串将采用Unicode格式。
因此,假设数据库访问层正确地转换了数据库记录中的文本,您不必担心编码,因为它始终是Unicode。