c++正则表达式regex_match和regex_seach使用
1:区别
regex_match用来做全匹配,检测字符串是否符合表达式规则,如果字符串符合规则,返回true;
regex_seach用来匹配字符串中是否有和规则相匹配的字符串子串;
2:regex_seach
通常用一个容器接收匹配后的字符串;匹配规则若含分组,会在容器中包含分组的字符串
regex_seach:只匹配一次,若想完全匹配字符串中所有符合规则的字符串,使用sregex_iterator迭代器遍历字符串,获取所有符合表达式规则的子串。
解释 | |
regex | 正则表达式类 |
regex_match | 将一个字符序列与一个正则表达式匹配 |
regex_search | 寻找第一个与正则表达式匹配的子序列 |
regex_replace | 使用给定格式替换一个正则表达式 |
smatch | 容器类,保存在string中搜索的结果 |
sregex_iterator | 迭代器适配器,调用regex_search来遍历一个string中所有匹配的子串 |
使用seach时,若表达式中含分组情况,分组信息将会在smatch容器中显示出来,smatch中的第一个值为匹配出来的字符串。
regex类r中存在两个分组,故在smatch容器中会显示出分组出的子串“x”和“1”。
ᶘ ᵒᴥᵒᶅssw: 以下是处理结果 xhc@DESKTOP-NUCC0IF MINGW64 ~ $ which cl link yasm cpp /d/Microsoft Visual Studio/Community2022/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/cl /d/Microsoft Visual Studio/Community2022/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/link /usr/bin/yasm /mingw64/bin/cpp
ᶘ ᵒᴥᵒᶅssw: 安装Visual Studio,然后在D:\Microsoft Visual Studio\Community2022\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64目录下找到cl.exe 和 link.exe,将其所在目录设置为环境变量,关闭命令行窗口(两个都要,关了才刷新),重新回到准备工作2
ᶘ ᵒᴥᵒᶅssw: 这个怎么解决 xhc@DESKTOP-NUCC0IF MINGW64 ~ $ which cl link yasm cpp which: no cl in (/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files (x86)/VMware/VMware Workstation/bin:/d/MinGW/bin:/d/Microsoft VS Code/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/c/WINDOWS/System32/OpenSSH:/d/Xftp:/d/Xshell:/c/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn:/c/Program Files/Microsoft SQL Server/100/Tools/Binn:/c/Program Files/Microsoft SQL Server/100/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn/VSShell/Common7/IDE:/c/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/PrivateAssemblies:/c/Program Files (x86)/Microsoft SQL Server/100/DTS/Binn:/c/Program Files/dotnet:/d/Windows Kits/10/Windows Performance Toolkit:/c/Users/xhc/AppData/Local/ActiveState/StateTool/release/bin:/c/Users/xhc...
ᶘ ᵒᴥᵒᶅssw: pacman-conf.exe怎么打开
JimmyKudo.Sun: 我是来感谢你的,找了很多方法,只有你一语中的的,感觉还是框架bug,这个实体设备必须立刻dispose