📜  dart 正则表达式 - Dart (1)

📅  最后修改于: 2023-12-03 14:40:36.991000             🧑  作者: Mango

Dart 正则表达式

简介

Dart 是谷歌推出的一种面向对象编程语言,它可以编译成 JavaScript 运行在任意浏览器中,也可以作为服务端语言运行在 VM 中。正则表达式是一种用来描述字符串的基础工具,Dart 提供了对正则表达式的支持,为程序员提供了强大的文本处理能力。

基本语法

Dart 中使用正则表达式需要使用 RegExp 类,其基本语法如下:

RegExp regExp = RegExp(r"正则表达式", 可选参数);

其中,第一个参数是字符串类型的正则表达式,第二个参数是 RegExp 对象的可选参数,包含如下属性:

  • caseSensitive:设置正则表达式是否区分大小写,默认为 true
  • multiLine:设置正则表达式是否支持多行模式,默认为 false
  • unicode:设置正则表达式是否支持 Unicode 模式,默认为 false
  • dotAll:设置正则表达式是否支持 Dot-All 模式,默认为 false

使用正则表达式的基本语法非常简单,首先我们需要编写一个正则表达式,接着使用 RegExp 类创建正则表达式对象,最后使用 RegExp 对象调用 hasMatch 方法判断字符串是否匹配该正则表达式:

RegExp regExp = RegExp(r"dart", caseSensitive: false);
String str = "Dart is a powerful language";
bool isMatch = regExp.hasMatch(str);
print(isMatch); // true
正则表达式语法

Dart 支持 ECMAScript 风格的正则表达式语法,具体语法可以参考正则表达式文档。下面是一些常用的正则表达式语法:

  • .:匹配任意一个字符(除了换行符 \n);
  • ^:匹配字符串的开始位置;
  • $:匹配字符串的结束位置;
  • []:定义一个字符集合,在字符集合中匹配任意一个字符;
  • \:转义字符;
  • *:匹配前面的字符零次或多次;
  • +:匹配前面的字符一次或多次;
  • ?:匹配前面的字符零次或一次;
  • {n}:匹配前面的字符恰好 n 次;
  • {n,}:匹配前面的字符至少 n 次;
  • {n,m}:匹配前面的字符 n 到 m 次。
正则表达式示例

下面是一些常用的正则表达式示例:

匹配整数
RegExp regExp = RegExp(r"^\d+$");
String str = "12345";
bool isMatch = regExp.hasMatch(str);
print(isMatch); // true
匹配小数
RegExp regExp = RegExp(r"^\d+\.\d+$");
String str = "3.1415";
bool isMatch = regExp.hasMatch(str);
print(isMatch); // true
匹配日期
RegExp regExp = RegExp(r"^\d{4}-\d{2}-\d{2}$");
String str = "2021-10-01";
bool isMatch = regExp.hasMatch(str);
print(isMatch); // true
匹配电子邮件
RegExp regExp = RegExp(r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$");
String str = "example@gmail.com";
bool isMatch = regExp.hasMatch(str);
print(isMatch); // true
总结

Dart 支持正则表达式,可以为程序员提供强大的文本处理能力。熟练掌握正则表达式语法,可以大大提高程序员的开发效率。