0

晚安,

我目前正在基于正则表达式匹配在 C# 中为人类语言开发一个非常简单的词法分析器,我目前面临指定一个正则表达式的问题,该正则表达式可以匹配目标语言中每个可能的标点符号,另一个也可以匹配各种空格。在 Stack Overflow 和另一个站点中搜索后,我发现我可以分别使用正则表达式\p{P}作为标点符号和\p{Z}对于空格,它在从文本文件中读取时起作用。问题是在最终程序中,需要从 SQL 数据库中读取记录并使用这个词法分析器处理它们,我不知道数据库中记录的编码是什么。在这种情况下这可能是一个问题吗?提到的正则表达式是否可以匹配输入的每个标点符号和空格字符,无论它们的编码是什么?

非常感谢你。

4

1 回答 1

2

.NET Framework 会将字符串从数据库转换为 Unicode。它是否正确转换它们取决于是否有东西告诉它数据库文本编码是什么。但是您看到的字符串Regex将采用 Unicode。

因此,假设数据库访问层正确转换了数据库记录中的文本,您不必担心编码,因为它始终是 Unicode。

于 2010-11-20T19:47:45.667 回答