MFC的宏_T()和_L()的区别,以及VS2017正则表达式批量替换_T()

简介: MFC的宏_T()和_L()的区别,以及VS2017正则表达式批量替换_T()

1、Windows使用两种字符集ANSI和UNICODE


Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。_T一般同字常数相关,如_T("Hello")。如果你编译一个程序为ANSI方式,_T实际不起任何作用。


而如果编译一个程序为UNICODE方式,则编译器会把"Hello"字符串以UNICODE方式保存。


_T()和_L()的区别在于,_L不管你是以什么方式编译,一律以以 UNICODE方式保存。


Visual C++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。


如果将来你不打算升级到unicode,那么也不需要_T

#ifdef  UNICODE   
    #define _tcscpy     wcscpy  
#else  
    #define _tcscpy     strcpy  
#endif 
_tcscmp -- strcmp wcscmp
lstrlen -- strlen lstrlenW
wprintf -- printf



2、VS2017正则替换字符串,将所有的"..."字符串替换成_T("...")


将所有的"..."字符串替换成_T("..."),但是不能替换#include后面的字符串。由于vs的正则表达式懒惰跟贪婪控制语法不明确,只好用3条表达式来分步骤实现:


(1)把已有的_T("")替换为""


_T\x28(\".+?\")\x29

$1


(2)把""替换为T("")


(\".+?\")

_T($1)


(3)把误判的#include _T("")替换回来#include ""


#include\s*_T\x28(\".+?\")\x29

#include $1


image.png


记得要勾选“使用正则表达式”,查找文件类型请使用C++的源文件和头文件。



---


VS2017正则表达式说明


https://docs.microsoft.com/zh-cn/visualstudio/ide/using-regular-expressions-in-visual-studio?view=vs-2017



相关文章
|
6月前
|
Python
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r'string'`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
64 3
|
6月前
|
Python Windows
【Python进阶必备】一文掌握re库:实战正则表达式
【Python进阶必备】一文掌握re库:实战正则表达式
119 0
|
5月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
49 2
|
5月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
5月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
5月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。
|
5月前
|
Python
Python中re模块的正则表达式
【6月更文挑战第2天】了解Python的re模块,它是处理正则表达式的核心工具。正则表达式用于在文本中查找特定模式。本文讨论了re模块的用法和技巧,包括导入模块、匹配、分组、替换文本、编译正则表达式以及使用预定义字符类、量词、锚点等高级功能。通过实例展示了如何在Python中执行这些操作,帮助提升文本处理能力。掌握这些技巧将使你更有效地利用正则表达式解决字符串处理问题。
47 2
|
5月前
|
Python
Python正则表达式详解:掌握文本匹配的魔法
Python正则表达式详解:掌握文本匹配的魔法
|
5月前
|
Python
python re 正则表达式库的使用
python re 正则表达式库的使用
39 0
|
6月前
|
数据安全/隐私保护 Python
Python进阶---正则表达式
Python进阶---正则表达式
24 2