fancy_regex Pub

用于用更简单的术语编写正则表达式的实用功能。

特点

如果您自己编写正则表达式有困难,或者您还不熟悉内置的 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
  • 改进文档

GitHub

查看 Github