fancy_regex 
用于用更简单的术语编写正则表达式的实用功能。
特点
如果您自己编写正则表达式有困难,或者您还不熟悉内置的 RegExp 类,那么您可以使用此软件包开始学习实现正则表达式。
该软件包提供 API,可使用更冗长但更易于人类阅读的类和方法来编写正则表达式。
如果您已经非常精通自己编写正则表达式,那么您将不需要此软件包。
入门
添加依赖项
dependencies: fancy_regex: ^0.1.0
导入
import 'package:fancy_regex/fancy_regex.dart';// Base Usagefinal RegExp exp = FancyRegex( expression: RawExpression("Hello World",), // Any RegExpComponent);// Use the RegExp object for your pattern matching needs
用法
此软件包提供的 API 可通过两种可用方法实现。
- 构建器模式:实例化一个单独的基础
RegExpComponent表达式,然后可以通过提供的扩展方法对其进行扩展。 - Flutter Widget 树样式:此处实现的每个
RegExpComponent类都能够包装另一个RegExpComponent表达式。
import 'package:fancy_regex/fancy_regex.dart';// Example for writing expression: /\+628\d{8,13}/// In Dart's RegExp, it's declared as RegExp(r"\+628\d{8,13}",)// Widget Tree StyleRegExp treeExp = FancyRegex( expression: SerialExpressions( [ CharacterClass.literal("+",), RawExpression("628",), MatchRangedCount( CharacterClass.digits(), 8, end: 13, ), ], ), // Any RegExpComponent);// Builder PatternRegExp builderExp = FancyRegex( expression: CharacterClass.literal("+",).addRight( RawExpression("628",), ).addRight( CharacterClass.digits().matchBetween( start: 8, end: 13, ), ), );// Use the RegExp object for your pattern matching needs
请参阅示例部分
可用 API
请在此处 查看文档
附加信息
- 如大多数正则表达式信息库所述,某些不常见的表达式并非普遍有效。如果某些表达式在特定平台上的工作不正常,请参考进一步的资料。
- 如果您觉得 API 太麻烦,或者想提出建议或错误报告,请随时提出 issue。
待办事项
- 查找尚未实现的更多可用 RegEx 运算符
- 编写更简洁、更易于理解的 API
- 改进文档