快速的字符串替换算法,在不使用正则表达式的情况下,使用lookarounds完成字符串替换
介绍
本库是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
开源协议
参与贡献
欢迎给我们提交PR,欢迎给我们提交Issue,欢迎参与任何形式的贡献。