mirror of
https://github.com/duke-git/lancet.git
synced 2025-11-02 19:44:00 +08:00
feat: add SubInBetween
This commit is contained in:
@@ -60,6 +60,7 @@ import (
|
|||||||
- [ContainsAll](#ContainsAll)
|
- [ContainsAll](#ContainsAll)
|
||||||
- [ContainsAny](#ContainsAny)
|
- [ContainsAny](#ContainsAny)
|
||||||
- [RemoveWhiteSpace](#RemoveWhiteSpace)
|
- [RemoveWhiteSpace](#RemoveWhiteSpace)
|
||||||
|
- [SubInBetween](#SubInBetween)
|
||||||
|
|
||||||
<div STYLE="page-break-after: always;"></div>
|
<div STYLE="page-break-after: always;"></div>
|
||||||
|
|
||||||
@@ -1096,10 +1097,10 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
result1 := strutil.IsNotBlank("")
|
result1 := strutil.IsNotBlank("")
|
||||||
result2 := strutil.IsNotBlank(" ")
|
result2 := strutil.IsNotBlank(" ")
|
||||||
result3 := strutil.IsNotBlank("\t\v\f\n")
|
result3 := strutil.IsNotBlank("\t\v\f\n")
|
||||||
result4 := strutil.IsNotBlank(" 中文")
|
result4 := strutil.IsNotBlank(" 中文")
|
||||||
result5 := strutil.IsNotBlank(" world ")
|
result5 := strutil.IsNotBlank(" world ")
|
||||||
|
|
||||||
fmt.Println(result1)
|
fmt.Println(result1)
|
||||||
fmt.Println(result2)
|
fmt.Println(result2)
|
||||||
@@ -1462,3 +1463,36 @@ func main() {
|
|||||||
// hello world
|
// hello world
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### <span id="SubInBetween">SubInBetween</span>
|
||||||
|
|
||||||
|
<p>获取字符串中指定的起始字符串start和终止字符串end直接的子字符串。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func SubInBetween(str string, start string, end string) string
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/strutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
str := "abcde"
|
||||||
|
|
||||||
|
result1 := strutil.SubInBetween(str, "", "de")
|
||||||
|
result2 := strutil.SubInBetween(str, "a", "d")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// abc
|
||||||
|
// bc
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -1463,3 +1463,37 @@ func main() {
|
|||||||
// hello world
|
// hello world
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### <span id="SubInBetween">SubInBetween</span>
|
||||||
|
|
||||||
|
<p>Return substring between the start and end position(excluded) of source string.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func SubInBetween(str string, start string, end string) string
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/strutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
str := "abcde"
|
||||||
|
|
||||||
|
result1 := strutil.SubInBetween(str, "", "de")
|
||||||
|
result2 := strutil.SubInBetween(str, "a", "d")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// abc
|
||||||
|
// bc
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -574,3 +574,15 @@ func RemoveWhiteSpace(str string, repalceAll bool) string {
|
|||||||
|
|
||||||
return strings.TrimSpace(str)
|
return strings.TrimSpace(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SubInBetween return substring between the start and end position(excluded) of source string.
|
||||||
|
// Play: todo
|
||||||
|
func SubInBetween(str string, start string, end string) string {
|
||||||
|
if _, after, ok := strings.Cut(str, start); ok {
|
||||||
|
if before, _, ok := strings.Cut(after, end); ok {
|
||||||
|
return before
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|||||||
@@ -653,3 +653,17 @@ func ExampleRemoveWhiteSpace() {
|
|||||||
// helloworld
|
// helloworld
|
||||||
// hello world
|
// hello world
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ExampleSubInBetween() {
|
||||||
|
str := "abcde"
|
||||||
|
|
||||||
|
result1 := SubInBetween(str, "", "de")
|
||||||
|
result2 := SubInBetween(str, "a", "d")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// abc
|
||||||
|
// bc
|
||||||
|
}
|
||||||
|
|||||||
@@ -566,3 +566,15 @@ func TestRemoveWhiteSpace(t *testing.T) {
|
|||||||
assert.Equal("helloworld", RemoveWhiteSpace(str, true))
|
assert.Equal("helloworld", RemoveWhiteSpace(str, true))
|
||||||
assert.Equal("hello world", RemoveWhiteSpace(str, false))
|
assert.Equal("hello world", RemoveWhiteSpace(str, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSubInBetween(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestSubInBetween")
|
||||||
|
|
||||||
|
str := "abcde"
|
||||||
|
|
||||||
|
assert.Equal("", SubInBetween(str, "", ""))
|
||||||
|
assert.Equal("ab", SubInBetween(str, "", "c"))
|
||||||
|
assert.Equal("bc", SubInBetween(str, "a", "d"))
|
||||||
|
assert.Equal("", SubInBetween(str, "a", ""))
|
||||||
|
assert.Equal("", SubInBetween(str, "a", "f"))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user