jinzhu/inflection
GitHub: jinzhu/inflection
一个 Go 语言的英语名词单复数转换库,支持自定义规则和大小写保持,适用于 ORM 表名映射等开发场景。
Stars: 525 | Forks: 72
# 词形变化
Inflection 用于处理英语名词的单复数转换
[](https://github.com/jinzhu/inflection/actions/workflows/go.yml)
## 基本用法
```
inflection.Plural("person") => "people"
inflection.Plural("Person") => "People"
inflection.Plural("PERSON") => "PEOPLE"
inflection.Plural("bus") => "buses"
inflection.Plural("BUS") => "BUSES"
inflection.Plural("Bus") => "Buses"
inflection.Singular("people") => "person"
inflection.Singular("People") => "Person"
inflection.Singular("PEOPLE") => "PERSON"
inflection.Singular("buses") => "bus"
inflection.Singular("BUSES") => "BUS"
inflection.Singular("Buses") => "Bus"
inflection.Plural("FancyPerson") => "FancyPeople"
inflection.Singular("FancyPeople") => "FancyPerson"
```
## 注册规则
标准规则源自 Rails 的 ActiveSupport (https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflections.rb)
```
inflection.AddUncountable("fish")
inflection.AddIrregular("person", "people")
inflection.AddPlural("(bu)s$", "${1}ses") // "bus" => "buses" / "BUS" => "BUSES" / "Bus" => "Buses"
inflection.AddSingular("(bus)(es)?$", "${1}") // "buses" => "bus" / "Buses" => "Bus" / "BUSES" => "BUS"
```
## 作者
**jinzhu**
*
*
*
## 开源协议
基于 [MIT License](http://www.opensource.org/licenses/MIT) 发布。
标签:EVTX分析, 日志审计