当前位置: 首页 > wzjs >正文

衣服网站建设策划书百度网站优化培训

衣服网站建设策划书,百度网站优化培训,小榄网站建设,网站建设 销售正则表达式应用 正则表达式是一种 文本模式匹配工具,用来描述字符串的结构。你可以用它来查找、验证、提取、替换字符串中符合特定格式的内容。 例如,你可以用一个正则表达式验证: 邮箱是否合法一个字符串是否是电话号码一个文件路径是否是…

正则表达式应用

正则表达式是一种 文本模式匹配工具,用来描述字符串的结构。你可以用它来查找、验证、提取、替换字符串中符合特定格式的内容。

例如,你可以用一个正则表达式验证:

  • 邮箱是否合法
  • 一个字符串是否是电话号码
  • 一个文件路径是否是 .cpp 文件

1 正则表达式基本字符分类

分类示例含义说明
普通字符a, b匹配自己本身
元字符. ^ \$ \* + ? | () [] {} 有特殊含义的控制符
转义字符\. \*匹配特殊字符本身(如 .

2 常用正则元字符语法

语法含义说明示例
.匹配任意一个字符(不包括换行)a.c 可匹配 abc, a@c
^匹配字符串的开始位置^abc 匹配以 abc 开头的字符串
$匹配字符串的结束位置xyz$ 匹配以 xyz 结尾的
*匹配前一个字符出现 0 次或多次bo* 匹配 b, bo, boo
+匹配前一个字符出现 1 次或多次go+gle 可匹配 google
?匹配前一个字符出现 0 次或 1 次colou?r 匹配 colorcolour
{n}恰好出现 n 次a{3} 匹配 aaa
{n,}至少出现 n 次a{2,} 匹配 aa, aaa, …
{n,m}出现 n 到 m 次a{2,4} 匹配 aa, aaa, aaaa
[...]匹配集合中的任一字符[abc] 匹配 abc
[^...]不匹配集合中的任一字符[^abc] 匹配非 a/b/c
``foo | `bar匹配foobar
( )分组(ab)+ 匹配 ab, abab,…

3 常用简写字符类(预定义)

简写含义说明示例
\d匹配任意数字 [0-9]\d{3} 匹配三位数
\D匹配非数字\D+ 匹配字母等
\w匹配单词字符 [a-zA-Z0-9_]匹配变量名等
\W匹配非单词字符空格、标点等
\s匹配空白字符(空格、制表符)\s+ 可匹配多个空格
\S匹配非空白字符非空内容

4 常用匹配实例

目标正则表达式说明
邮箱地址[\w.-]+@[\w.-]+\.\w+简单邮箱格式
IPv4地址\b\d{1,3}(\.\d{1,3}){3}\b不严格校验
中文字符[\u4e00-\u9fa5](或用UTF-8编码匹配)需处理编码
手机号(中国)1[3-9]\d{9}11位以1开头
日期(YYYY-MM-DD)\d{4}-\d{2}-\d{2}
C++ 文件路径.*\.cpp$匹配以 .cpp 结尾的字符串
URLhttps?://[\w./?=&%-]+

5 C++ 使用

std::regex pattern(R"(\d{3}-\d{3,4}-\d{4})");  // 匹配电话号码
std::smatch result;std::string text = "Call me at 010-1234-5678";
if (std::regex_search(text, result, pattern)) {std::cout << "Match: " << result[0] << "\n";
}
  1. C++11 标准库:<regex>
#include <iostream>
#include <regex>
#include <string>int main() {std::string text = "My email is test@example.com.";std::regex pattern(R"(\b[\w.-]+@[\w.-]+\.\w+\b)");std::smatch match;if (std::regex_search(text, match, pattern)) {std::cout << "Found: " << match[0] << std::endl;} else {std::cout << "No match found." << std::endl;}return 0;
}

说明:

  • std::regex:表示一个正则表达式模式。
  • std::smatch:字符串匹配结果(基于 std::string)。
  • std::regex_search:搜索匹配位置。
  • std::regex_match:完全匹配整个字符串。

⚠ 注意:GCC 4.9+ 才支持 <regex> 较完整,老版本不建议使用。


  1. POSIX 正则库(兼容 C/C++,头文件 <regex.h>
#include <iostream>
#include <regex.h>int main() {const char* pattern = "^[a-z]+@[a-z]+\\.[a-z]+$";const char* text = "example@email.com";regex_t regex;regcomp(&regex, pattern, REG_EXTENDED | REG_NOSUB);if (regexec(&regex, text, 0, nullptr, 0) == 0) {std::cout << "Matched!" << std::endl;} else {std::cout << "No match." << std::endl;}regfree(&regex);return 0;
}

特点:

  • 兼容所有 Linux 平台,依赖 libc
  • 不支持 C++ 风格语义。
  • 错误信息需要手动处理。

  1. 使用第三方库(推荐 Boost.Regex)
#include <iostream>
#include <boost/regex.hpp>int main() {std::string s = "Your code is at: /home/user/main.cpp";boost::regex expr("/home/\\w+/\\w+\\.cpp");if (boost::regex_search(s, expr)) {std::cout << "Path matched!" << std::endl;} else {std::cout << "No match." << std::endl;}return 0;
}

编译时需加 -lboost_regex 链接:

g++ test.cpp -o test -lboost_regex

编译参数与环境:

编译 C++11 <regex> 示例:

g++ -std=c++11 regex_std.cpp -o regex_std

POSIX regex:

g++ regex_posix.cpp -o regex_posix

Boost regex:

g++ -std=c++11 regex_boost.cpp -o regex_boost -lboost_regex

6 调试建议

你可以在线调试你的正则表达式:

  • https://regex101.com/(支持多语言,包括 C++)
  • https://regexr.com/
  • VSCode 插件:Regex Previewer

7 C++ 项目中正则应用场景

  1. 配置文件格式检查
  2. 日志分析与过滤(grep替代)
  3. 文件名/路径筛选器
  4. 命令行参数/表达式提取
  5. 编译器/解释器中的词法分析器(Lexer)

三种方式应用场景:

场景推荐方式
简单跨平台程序std::regex
面向 Linux 嵌入式/C 项目POSIX regex.h
高性能/复杂正则处理Boost.Regex
http://www.dtcms.com/wzjs/352391.html

相关文章:

  • 微信公众平台号登录官网北京优化靠谱的公司
  • 中国第一个做电商网站百度图片查找
  • 哈尔滨网站建设推广方案微信公众号运营推广方案
  • 如何做网站收录网络营销与直播电商是干什么的
  • 科讯网站发布文章百度金融
  • 网站维护一般需要多久时间泰安seo推广
  • 河南专业的做网站的公司海外网络推广方案
  • 苏州网站建设公司哪个好重庆seo培训
  • 济南网络推广公司排行榜整站seo
  • wordpress小程序搭建广东网站seo营销
  • 现在主流网站用什么做的搜索引擎优化原理
  • 中企动力初期做的网站吉林seo关键词
  • 长沙电商网站建设推广软文是什么
  • 英文网站开发免费做网站怎么做网站链接
  • 网站源码程序互联网推广好做吗
  • 智能网站建设找三好科技百度系app有哪些
  • 网站关键词不收录百度统计登录
  • 有哪些平台可以发布厂家信息郑州专业seo推荐
  • 北京门户网站建设竞价恶意点击立案标准
  • 那些做软件的网站深圳推广公司
  • 龙岗附近公司做网站建设多少钱如何查询百度搜索关键词排名
  • 如何做网店网站赛雷猴是什么意思
  • 辽阳建设银行网站推广软件一键发送
  • 深圳网址网站建设公司百度热搜榜排名
  • 睡不着偷偷看b站seo外包公司费用
  • 邯郸做网站最好的公司百度爱采购推广一个月多少钱
  • 哈尔滨最好的网站建设公司游戏推广员是诈骗吗
  • 上传图片的网站要怎么做网站维护工作内容
  • 抖音开放平台常州百度关键词优化
  • 做网站商城怎么样北京公司排名seo