Thanks to visit codestin.com
Credit goes to gitcode.com

easy-relpace-cj:基于 Cangjie 语言的非正则字符串替换算法项目

快速的字符串替换算法,在不使用正则表达式的情况下,使用lookarounds完成字符串替换

分支2Tags0

easy-replace-cj

介绍

本库是Cangjie语言实现的非正则字符串替换算法。

项目特性

  • 支持字符串替换
  • 支持字符串替换区间选择

源码目录

|-- doc
|   |-- assets
|   |-- design.md
|   `-- feature_api.md
|-- src
|   |-- Er.cj
|   |-- Er_test.cj
|   `-- main.cj
|-- test
|   |-- HLT
|   `-- LLT
|-- CHANGELOG.md
|-- LICENSE
|-- README.OpenSource
|-- README.md
|-- cjpm.lock
`-- cjpm.toml

  • doc 文档目录,用于存API接口文档
  • src 是库源码目录
  • test 存放 HLT 测试用例、LLT 自测用例、FUZZ 测试用例和文档示例用例

接口说明

主要类和函数接口说明,详见 API

使用说明

编译构建

描述具体的编译过程:

cpm update
cpm build

功能示例

xxx 功能示例

功能示例描述:

示例代码如下:

@Test
func testl_er_1(): Unit {
    var leftOutsideNot: String = ""
    var leftOutside: String = ""
    var leftMaybe: String = "a"
    var searchFor: String = "bbb"
    var rightMaybe: String = ""
    var rightOutside: String = ""
    var rightOutsideNot: String = ""
    var leftOutsideNotCaseInsensitive: Bool = false
    var leftOutsideCaseInsensitive: Bool = false
    var leftMaybeCaseInsensitive: Bool = false
    var searchForCaseInsensitive: Bool = false
    var rightMaybeCaseInsensitive: Bool = false
    var rightOutsideCaseInsensitive: Bool = false

    var rightOutsideNotCaseInsensitive: Bool = false
    var input = ErOpts(leftOutsideNot, leftOutside, leftMaybe, searchFor, rightMaybe, rightOutside, rightOutsideNot,
        leftOutsideNotCaseInsensitive, leftOutsideCaseInsensitive, leftMaybeCaseInsensitive,
        searchForCaseInsensitive, rightMaybeCaseInsensitive, rightOutsideCaseInsensitive,
        rightOutsideNotCaseInsensitive)

    var source = "zzz abbb zzz"
    var replacement = "yyy"
    var result = Er.er(source, input, replacement)
    var expect = "zzz yyy zzz"
    @Assert(result, expect)
}

执行结果如下:

[ PASSED ] CASE: testl_er_1

约束与限制

在下述版本验证通过:

Cangjie Version: 0.57.3

开源协议

MIT License

参与贡献

欢迎给我们提交PR,欢迎给我们提交Issue,欢迎参与任何形式的贡献。

项目介绍

快速的字符串替换算法,在不使用正则表达式的情况下,使用lookarounds完成字符串替换

定制我的领域