首页 > 下载 > 下载详文:程序语言中的正则表达式

程序语言中的正则表达式

发布时间:2021年09月24日 11时24分44秒   属性:程序Web开发 > Web综合    访问次数:127997
字体: 初始 添加收藏 分享给好友

Javascript、C#、Java、C++、Python正则表达式示例

正则表达式是用于匹配字符串中字符组合的模式。在各程序语言中,正则表达式也是对象,它提供了功能强大、灵活而又高效的方法来处理文本。 正则表达式可以快速分析大量文本,例如:

  • 查找特定字符模式;
  • 验证文本以确保它匹配预定义模式(如电子邮件地址、电话号码、网址等);
  • 提取、编辑、替换或删除文本子字符串;
  • 将提取的字符串添加到集合中,以便生成报告。


在程序编写过程中字符处理字符串或分析文本块,正则表达式是不可缺少的工具。一个简短的正则表达式是一个字符的特殊序列,可帮助开发者匹配或查找其他字符串或字符串集。本介绍Javascript、C#、Java、Python、C++等语言的正则表达式使用,各程序语言的方法语言各异,但正则表达式在各程序语言中大部分都是相同的标准格式。

Javascript正则表达式示例:

JavaScript检索字符串中的指定字符用test方法,用法/正则规则/.test("字符串"),返回布尔值true或false,下面示例是指定abc为正则规则,特殊字符“^”和“$”为开始和结尾的边界符,比如“/^abc$/”条件为abc全字匹配,“/^abc$/.test("abcd"));”这里的意思是“abcd”包含“abc”既要匹配字符次序又要匹配字符内容。JavaScript正则表达式还可以验证 exec方法、match方法、matchAll、search、replace 替换字符方法、split 分割字符方法,这里不展开做示例演示。可以参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions(mozilla)。

JScript 代码  复制
console.log(/abc/.test("abcd"));//输出true
console.log(/abc/.test("1abcd"));//输出true
console.log(/abc/.test("1abd"));//输出false
console.log(/^abc/.test("abcd"));//输出true
console.log(/^abc$/.test("abcd"));//输出false

C#正则表达示例:

C#检索字符串中的中的指定字符用Regex.IsMatch()方法,返回布尔值true或false,这里需要引入“using System.Text.RegularExpressions;”,下面示例是指定abc为正则规则,特殊字符“^”和“$”为开始和结尾的边界符,比如“/^abc$/”条件为abc全字匹配,“Regex.IsMatch("abcd", @"^abc$")”这里的意思是“abcd”包含“abc”既要匹配字符次序又要匹配字符内容。除此以外C#还可以有Match(String)方法、Matches(String)方法、Replace(String, String)方法、Split(String)等,可以参考微软官方Regex 类介绍:https://docs.microsoft.com/zh-cn/dotnet/api/system.text.regularexpressions.regex?view=net-5.0

C# 代码  复制
Response.Write(Regex.IsMatch("abcd"@"abc"));//输出true
Response.Write(Regex.IsMatch("1abcd", @"abc"));//输出true
Response.Write(Regex.IsMatch("1abd", @"abc"));//输出false
Response.Write(Regex.IsMatch("abcd", @"^abc"));//输出true
Response.Write(Regex.IsMatch("abcd", @"^abc$"));//输出false

Java正则表达式示例:

Java检索字符串中的指定字符用Pattern.compile("abc").matcher("abcd").find()方法,find()返回布尔值true或false,需要引入“import java.util.regex.Matcher;”和“import java.util.regex.Pattern;”两个类。下面示例是指定“abc”为正则规则,特殊字符“^”和“$”为开始和结尾的边界符,如“Pattern.compile("^abc$").matcher("abcd").find()”这里面“abcd”包含“abc”既要匹配字符次序又要匹配字符内容。java正则详细介绍地址:https://www.oracle.com/technical-resources/articles/java/regex.html

Java 代码  复制

System.out.println(Pattern.compile("abc").matcher("abcd").find());//輸出true
System.out.println(Pattern.compile("abc").matcher("1abcd").find());//輸出true
System.out.println(Pattern.compile("abc").matcher("1abd").find());//輸出false
System.out.println(Pattern.compile("^abc").matcher("abcd").find());//輸出true
System.out.println(Pattern.compile("^abc$").matcher("abcd").find());//輸出false

C++正则表达式示例:

C++检索字符串中的指定字符采用regex_search方法,需要引入“#include <regex>”类,下面指定“遺昕”为正则规则,同样特殊字符“^”和“$”为开始和结尾的边界符,在查找匹配regex_search(a, m, b)方法之前,定义了string a=“遺昕传媒”、smatch m、regex b("^遺昕$"),此时是在"遺昕传媒"中查找全字前后顺序匹配“遺昕”,没有满足条件则返回false为0。除此以外C++正则表达式方法还有regex_match()、regex_replace(),可以参考:https://www.softwaretestinghelp.com/regex-in-cpp/#:~:text=Regular%20Expression%20%28regex%29%20In%20C%2B%2B%20A%20regular%20expression,etc.%20Regexes%20are%20also%20used%20for%20input%20validation.

C++代码  复制
std::string a = "遺昕传媒";
std::smatch m;
std::regex b("^遺昕");
std::cout << std::regex_search(a, m, b);//输出true
std::printf("\n");
std::string a1 = "遺昕传媒";
std::regex b1("^遺昕$");
std::cout << std::regex_search(a1, m, b1);//输出false
std::printf("\n");

std::string a2 = "遺昕传媒";
std::regex b2("遺昕");
std::cout << std::regex_search(a2, m, b2);//輸出true
std::printf("\n");

std::string a3 = "010-遺昕传媒";
std::regex b3("遺昕");
std::cout << std::regex_search(a3, m, b3);//輸出true
std::printf("\n");

std::string a4 = "遺010-昕传媒";
std::regex b4("遺昕");
std::cout << std::regex_search(a4, m, b4);//輸出false
std::printf("\n");

Python正则表达式示例:

python检索字符串中的指定字符用in关键字即可,它是众多程序语言中最为简洁的,如'^abc$' in "abcd"示例在字符串"abcd"中全字匹配“abc”,同样特殊字符“^”和“$”为开始和结尾的边界符。Python正则表达式方法除此还有find()、index()、sreach()方法等,详细介绍地址:https://realpython.com/regex-python/

Python 代码  复制
print('abc' in "abcd")#輸出true
print('abc' in "1abcd")#輸出true
print('abc' in "1abd")#輸出false
print('^abc' in "abcd")#輸出true
print('^abc$' in "abcd")#輸出false

通过上面JavaScript、C#、Java、C++、Python五种不同语言的示例,可以看到正则式的规则都是通用的,各自语言的语法不同方法关键都不同,表达方式也就不同,但是正则表达式的规则执行结果都是相同的。JavaScript用test方法来检测字符串是否匹配某个模式,C#是用Regex.IsMatch方法来匹配字符,Java是用Pattern.compile("abc").matcher("abcd").find()方式匹配字符,C++则是通过regex_search方法来匹配,Python通过关键字in来匹配。

下面怎则 表达式中的特殊字符含义:

字符 含义
. 匹配除换行符以外的任何单个字符
^ ∙ 在字符串的开头锚定匹配项
∙ 补充字符类
$ 将匹配锚定在字符串的末尾
* 匹配零个或多个重复
+ 匹配一次或多次重复
? ∙匹配零个或一个重复
∙的指定非贪婪版本*+?
∙推出一个超前或向后断言
∙创建一个名为组
{} 匹配明确指定的重复次数
\ ∙ 转义具有特殊含义的元字符
∙ 引入特殊字符类
∙ 引入分组反向引用
[] 指定字符类
| 指定交替
() 创建一个组
:
#
=
!
指定专门小组
<> 创建命名组
元字符 含义
\d 匹配任何数字,相当于 [0-9]
\D 匹配任何不是数字的字符,相当于 [^0-9]
\w 匹配任何字母数字字符(加下划线),相当于 [A-Za-z_0-9]
\W 匹配任何非字母数字字符,除了 [^A-Za-z_0-9]
\s 匹配任何空白字符:空格、制表符、换行符和 Unicode 空格
\S 匹配任何不是空格的字符
\0 匹配空值
\n 匹配换行符
\t 匹配制表符
\uXXXX 匹配具有代码 XXXX的unicode字符(需要u标志) .匹配任何不是换行符的字符(例如\n)
[^] 匹配任何字符,包括换行符。它对多行字符串很有用

本文介绍各语言的正则表达式用法,没有没有展开其它正则表达式的其它方法的用法,通过5示例演示各正则表示初步入门,从这里我们可以看出正则表达式各语言都是通用的标准规则,由于各语言语法规则不同表达方式不同,但执行同一个正则式的结果是相同的。其中C#和C++程序都是在Visual studio中完成,Python和Java程序均是在Eclipse IDE中完成,这两者需要配置java虚拟环境,python则需要安装python解释器。

本文示例列表:

  1. 文件夹ASP.NETC# ---------------------- C#正则表达式
  2. 文件夹ConsoleApplication1 ---------------------- C++正则表达
  3. 文件夹pythonTs ---------------------- python正则表达式
  4. 文件夹RegApp  ---------------------- Java正则表达式
  5. HtmlPage4.html ---------------------- JavaScript正则表达式
程序语言中的正则表达式 (2)
本下载连接不支持第三下载工具打开,请直接点击下载即可
文章版权归属weisim3.com所有,未经书面版权许可同意,不得私自转载(或做修改转载),源文件示例仅供学习使用,更不要出于商业用途或印刷出版发行!否则将追究其相关法律责任,版权联系QQ:729260499。
遺昕 | Weisim3.com 下载许可条款 ( 您本次需要付费下载 ) .



付费源文件: 程序语言中的正则表达式
支付金额: ¥3.00        授权期限: 7
E44M2IReDqUWuvSu1JjLyKXXlhiyp0 -- 20241209210959