github.com/wangyougui/gf/v2@v2.6.5/text/gstr/gstr_z_example_test.go (about)

     1  // Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the MIT License.
     4  // If a copy of the MIT was not distributed with this file,
     5  // You can obtain one at https://github.com/wangyougui/gf.
     6  
     7  package gstr_test
     8  
     9  import (
    10  	"fmt"
    11  
    12  	"github.com/wangyougui/gf/v2/text/gstr"
    13  )
    14  
    15  func ExampleCount() {
    16  	var (
    17  		str     = `goframe is very, very easy to use`
    18  		substr1 = "goframe"
    19  		substr2 = "very"
    20  		result1 = gstr.Count(str, substr1)
    21  		result2 = gstr.Count(str, substr2)
    22  	)
    23  	fmt.Println(result1)
    24  	fmt.Println(result2)
    25  
    26  	// Output:
    27  	// 1
    28  	// 2
    29  }
    30  
    31  func ExampleCountI() {
    32  	var (
    33  		str     = `goframe is very, very easy to use`
    34  		substr1 = "GOFRAME"
    35  		substr2 = "VERY"
    36  		result1 = gstr.CountI(str, substr1)
    37  		result2 = gstr.CountI(str, substr2)
    38  	)
    39  	fmt.Println(result1)
    40  	fmt.Println(result2)
    41  
    42  	// Output:
    43  	// 1
    44  	// 2
    45  }
    46  
    47  func ExampleToLower() {
    48  	var (
    49  		s      = `GOFRAME`
    50  		result = gstr.ToLower(s)
    51  	)
    52  	fmt.Println(result)
    53  
    54  	// Output:
    55  	// goframe
    56  }
    57  
    58  func ExampleToUpper() {
    59  	var (
    60  		s      = `goframe`
    61  		result = gstr.ToUpper(s)
    62  	)
    63  	fmt.Println(result)
    64  
    65  	// Output:
    66  	// GOFRAME
    67  }
    68  
    69  func ExampleUcFirst() {
    70  	var (
    71  		s      = `hello`
    72  		result = gstr.UcFirst(s)
    73  	)
    74  	fmt.Println(result)
    75  
    76  	// Output:
    77  	// Hello
    78  }
    79  
    80  func ExampleLcFirst() {
    81  	var (
    82  		str    = `Goframe`
    83  		result = gstr.LcFirst(str)
    84  	)
    85  	fmt.Println(result)
    86  
    87  	// Output:
    88  	// goframe
    89  }
    90  
    91  func ExampleUcWords() {
    92  	var (
    93  		str    = `hello world`
    94  		result = gstr.UcWords(str)
    95  	)
    96  	fmt.Println(result)
    97  
    98  	// Output:
    99  	// Hello World
   100  }
   101  
   102  func ExampleIsLetterLower() {
   103  	fmt.Println(gstr.IsLetterLower('a'))
   104  	fmt.Println(gstr.IsLetterLower('A'))
   105  
   106  	// Output:
   107  	// true
   108  	// false
   109  }
   110  
   111  func ExampleIsLetterUpper() {
   112  	fmt.Println(gstr.IsLetterUpper('A'))
   113  	fmt.Println(gstr.IsLetterUpper('a'))
   114  
   115  	// Output:
   116  	// true
   117  	// false
   118  }
   119  
   120  func ExampleIsNumeric() {
   121  	fmt.Println(gstr.IsNumeric("88"))
   122  	fmt.Println(gstr.IsNumeric("3.1415926"))
   123  	fmt.Println(gstr.IsNumeric("abc"))
   124  	// Output:
   125  	// true
   126  	// true
   127  	// false
   128  }
   129  
   130  func ExampleReverse() {
   131  	var (
   132  		str    = `123456`
   133  		result = gstr.Reverse(str)
   134  	)
   135  	fmt.Println(result)
   136  
   137  	// Output:
   138  	// 654321
   139  }
   140  
   141  func ExampleNumberFormat() {
   142  	var (
   143  		number       float64 = 123456
   144  		decimals             = 2
   145  		decPoint             = "."
   146  		thousandsSep         = ","
   147  		result               = gstr.NumberFormat(number, decimals, decPoint, thousandsSep)
   148  	)
   149  	fmt.Println(result)
   150  
   151  	// Output:
   152  	// 123,456.00
   153  }
   154  
   155  func ExampleChunkSplit() {
   156  	var (
   157  		body     = `1234567890`
   158  		chunkLen = 2
   159  		end      = "#"
   160  		result   = gstr.ChunkSplit(body, chunkLen, end)
   161  	)
   162  	fmt.Println(result)
   163  
   164  	// Output:
   165  	// 12#34#56#78#90#
   166  }
   167  
   168  func ExampleCompare() {
   169  	fmt.Println(gstr.Compare("c", "c"))
   170  	fmt.Println(gstr.Compare("a", "b"))
   171  	fmt.Println(gstr.Compare("c", "b"))
   172  
   173  	// Output:
   174  	// 0
   175  	// -1
   176  	// 1
   177  }
   178  
   179  func ExampleEqual() {
   180  	fmt.Println(gstr.Equal(`A`, `a`))
   181  	fmt.Println(gstr.Equal(`A`, `A`))
   182  	fmt.Println(gstr.Equal(`A`, `B`))
   183  
   184  	// Output:
   185  	// true
   186  	// true
   187  	// false
   188  }
   189  
   190  func ExampleFields() {
   191  	var (
   192  		str    = `Hello World`
   193  		result = gstr.Fields(str)
   194  	)
   195  	fmt.Printf(`%#v`, result)
   196  
   197  	// Output:
   198  	// []string{"Hello", "World"}
   199  }
   200  
   201  func ExampleHasPrefix() {
   202  	var (
   203  		s      = `Hello World`
   204  		prefix = "Hello"
   205  		result = gstr.HasPrefix(s, prefix)
   206  	)
   207  	fmt.Println(result)
   208  
   209  	// Output:
   210  	// true
   211  }
   212  
   213  func ExampleHasSuffix() {
   214  	var (
   215  		s      = `my best love is goframe`
   216  		prefix = "goframe"
   217  		result = gstr.HasSuffix(s, prefix)
   218  	)
   219  	fmt.Println(result)
   220  
   221  	// Output:
   222  	// true
   223  }
   224  
   225  func ExampleCountWords() {
   226  	var (
   227  		str    = `goframe is very, very easy to use!`
   228  		result = gstr.CountWords(str)
   229  	)
   230  	fmt.Printf(`%#v`, result)
   231  
   232  	// Output:
   233  	// map[string]int{"easy":1, "goframe":1, "is":1, "to":1, "use!":1, "very":1, "very,":1}
   234  }
   235  
   236  func ExampleCountChars() {
   237  	var (
   238  		str    = `goframe`
   239  		result = gstr.CountChars(str)
   240  	)
   241  	fmt.Println(result)
   242  
   243  	// May Output:
   244  	// map[a:1 e:1 f:1 g:1 m:1 o:1 r:1]
   245  }
   246  
   247  func ExampleWordWrap() {
   248  	{
   249  		var (
   250  			str    = `A very long woooooooooooooooooord. and something`
   251  			width  = 8
   252  			br     = "\n"
   253  			result = gstr.WordWrap(str, width, br)
   254  		)
   255  		fmt.Println(result)
   256  	}
   257  	{
   258  		var (
   259  			str    = `The quick brown fox jumped over the lazy dog.`
   260  			width  = 20
   261  			br     = "<br />\n"
   262  			result = gstr.WordWrap(str, width, br)
   263  		)
   264  		fmt.Printf("%v", result)
   265  	}
   266  
   267  	// Output:
   268  	// A very
   269  	// long
   270  	// woooooooooooooooooord.
   271  	// and
   272  	// something
   273  	// The quick brown fox<br />
   274  	// jumped over the lazy<br />
   275  	// dog.
   276  }
   277  
   278  func ExampleLenRune() {
   279  	var (
   280  		str    = `GoFrame框架`
   281  		result = gstr.LenRune(str)
   282  	)
   283  	fmt.Println(result)
   284  
   285  	// Output:
   286  	// 9
   287  }
   288  
   289  func ExampleRepeat() {
   290  	var (
   291  		input      = `goframe `
   292  		multiplier = 3
   293  		result     = gstr.Repeat(input, multiplier)
   294  	)
   295  	fmt.Println(result)
   296  
   297  	// Output:
   298  	// goframe goframe goframe
   299  }
   300  
   301  func ExampleShuffle() {
   302  	var (
   303  		str    = `123456`
   304  		result = gstr.Shuffle(str)
   305  	)
   306  	fmt.Println(result)
   307  
   308  	// May Output:
   309  	// 563214
   310  }
   311  
   312  func ExampleSplit() {
   313  	var (
   314  		str       = `a|b|c|d`
   315  		delimiter = `|`
   316  		result    = gstr.Split(str, delimiter)
   317  	)
   318  	fmt.Printf(`%#v`, result)
   319  
   320  	// Output:
   321  	// []string{"a", "b", "c", "d"}
   322  }
   323  
   324  func ExampleSplitAndTrim() {
   325  	var (
   326  		str       = `a|b|||||c|d`
   327  		delimiter = `|`
   328  		result    = gstr.SplitAndTrim(str, delimiter)
   329  	)
   330  	fmt.Printf(`%#v`, result)
   331  
   332  	// Output:
   333  	// []string{"a", "b", "c", "d"}
   334  }
   335  
   336  func ExampleJoin() {
   337  	var (
   338  		array  = []string{"goframe", "is", "very", "easy", "to", "use"}
   339  		sep    = ` `
   340  		result = gstr.Join(array, sep)
   341  	)
   342  	fmt.Println(result)
   343  
   344  	// Output:
   345  	// goframe is very easy to use
   346  }
   347  
   348  func ExampleJoinAny() {
   349  	var (
   350  		sep    = `,`
   351  		arr2   = []int{99, 73, 85, 66}
   352  		result = gstr.JoinAny(arr2, sep)
   353  	)
   354  	fmt.Println(result)
   355  
   356  	// Output:
   357  	// 99,73,85,66
   358  }
   359  
   360  func ExampleExplode() {
   361  	var (
   362  		str       = `Hello World`
   363  		delimiter = " "
   364  		result    = gstr.Explode(delimiter, str)
   365  	)
   366  	fmt.Printf(`%#v`, result)
   367  
   368  	// Output:
   369  	// []string{"Hello", "World"}
   370  }
   371  
   372  func ExampleImplode() {
   373  	var (
   374  		pieces = []string{"goframe", "is", "very", "easy", "to", "use"}
   375  		glue   = " "
   376  		result = gstr.Implode(glue, pieces)
   377  	)
   378  	fmt.Println(result)
   379  
   380  	// Output:
   381  	// goframe is very easy to use
   382  }
   383  
   384  func ExampleChr() {
   385  	var (
   386  		ascii  = 65 // A
   387  		result = gstr.Chr(ascii)
   388  	)
   389  	fmt.Println(result)
   390  
   391  	// Output:
   392  	// A
   393  }
   394  
   395  // '103' is the 'g' in ASCII
   396  func ExampleOrd() {
   397  	var (
   398  		str    = `goframe`
   399  		result = gstr.Ord(str)
   400  	)
   401  
   402  	fmt.Println(result)
   403  
   404  	// Output:
   405  	// 103
   406  }
   407  
   408  func ExampleHideStr() {
   409  	var (
   410  		str     = `13800138000`
   411  		percent = 40
   412  		hide    = `*`
   413  		result  = gstr.HideStr(str, percent, hide)
   414  	)
   415  	fmt.Println(result)
   416  
   417  	// Output:
   418  	// 138****8000
   419  }
   420  
   421  func ExampleNl2Br() {
   422  	var (
   423  		str = `goframe
   424  is
   425  very
   426  easy
   427  to
   428  use`
   429  		result = gstr.Nl2Br(str)
   430  	)
   431  
   432  	fmt.Println(result)
   433  
   434  	// Output:
   435  	// goframe<br>is<br>very<br>easy<br>to<br>use
   436  }
   437  
   438  func ExampleAddSlashes() {
   439  	var (
   440  		str    = `'aa'"bb"cc\r\n\d\t`
   441  		result = gstr.AddSlashes(str)
   442  	)
   443  
   444  	fmt.Println(result)
   445  
   446  	// Output:
   447  	// \'aa\'\"bb\"cc\\r\\n\\d\\t
   448  }
   449  
   450  func ExampleStripSlashes() {
   451  	var (
   452  		str    = `C:\\windows\\GoFrame\\test`
   453  		result = gstr.StripSlashes(str)
   454  	)
   455  	fmt.Println(result)
   456  
   457  	// Output:
   458  	// C:\windows\GoFrame\test
   459  }
   460  
   461  func ExampleQuoteMeta() {
   462  	{
   463  		var (
   464  			str    = `.\+?[^]()`
   465  			result = gstr.QuoteMeta(str)
   466  		)
   467  		fmt.Println(result)
   468  	}
   469  	{
   470  		var (
   471  			str    = `https://goframe.org/pages/viewpage.action?pageId=1114327`
   472  			result = gstr.QuoteMeta(str)
   473  		)
   474  		fmt.Println(result)
   475  	}
   476  
   477  	// Output:
   478  	// \.\\\+\?\[\^\]\(\)
   479  	// https://goframe\.org/pages/viewpage\.action\?pageId=1114327
   480  
   481  }
   482  
   483  // array
   484  func ExampleSearchArray() {
   485  	var (
   486  		array  = []string{"goframe", "is", "very", "nice"}
   487  		str    = `goframe`
   488  		result = gstr.SearchArray(array, str)
   489  	)
   490  	fmt.Println(result)
   491  
   492  	// Output:
   493  	// 0
   494  }
   495  
   496  func ExampleInArray() {
   497  	var (
   498  		a      = []string{"goframe", "is", "very", "easy", "to", "use"}
   499  		s      = "goframe"
   500  		result = gstr.InArray(a, s)
   501  	)
   502  	fmt.Println(result)
   503  
   504  	// Output:
   505  	// true
   506  }
   507  
   508  func ExamplePrefixArray() {
   509  	var (
   510  		strArray = []string{"tom", "lily", "john"}
   511  	)
   512  
   513  	gstr.PrefixArray(strArray, "classA_")
   514  
   515  	fmt.Println(strArray)
   516  
   517  	// Output:
   518  	// [classA_tom classA_lily classA_john]
   519  }
   520  
   521  // case
   522  func ExampleCaseCamel() {
   523  	var (
   524  		str    = `hello world`
   525  		result = gstr.CaseCamel(str)
   526  	)
   527  	fmt.Println(result)
   528  
   529  	// Output:
   530  	// HelloWorld
   531  }
   532  
   533  func ExampleCaseCamelLower() {
   534  	var (
   535  		str    = `hello world`
   536  		result = gstr.CaseCamelLower(str)
   537  	)
   538  	fmt.Println(result)
   539  
   540  	// Output:
   541  	// helloWorld
   542  }
   543  
   544  func ExampleCaseSnake() {
   545  	var (
   546  		str    = `hello world`
   547  		result = gstr.CaseSnake(str)
   548  	)
   549  	fmt.Println(result)
   550  
   551  	// Output:
   552  	// hello_world
   553  }
   554  
   555  func ExampleCaseSnakeScreaming() {
   556  	var (
   557  		str    = `hello world`
   558  		result = gstr.CaseSnakeScreaming(str)
   559  	)
   560  	fmt.Println(result)
   561  
   562  	// Output:
   563  	// HELLO_WORLD
   564  }
   565  
   566  func ExampleCaseSnakeFirstUpper() {
   567  	var (
   568  		str    = `RGBCodeMd5`
   569  		result = gstr.CaseSnakeFirstUpper(str)
   570  	)
   571  	fmt.Println(result)
   572  
   573  	// Output:
   574  	// rgb_code_md5
   575  }
   576  
   577  func ExampleCaseKebab() {
   578  	var (
   579  		str    = `hello world`
   580  		result = gstr.CaseKebab(str)
   581  	)
   582  	fmt.Println(result)
   583  
   584  	// Output:
   585  	// hello-world
   586  }
   587  
   588  func ExampleCaseKebabScreaming() {
   589  	var (
   590  		str    = `hello world`
   591  		result = gstr.CaseKebabScreaming(str)
   592  	)
   593  	fmt.Println(result)
   594  
   595  	// Output:
   596  	// HELLO-WORLD
   597  }
   598  
   599  func ExampleCaseDelimited() {
   600  	var (
   601  		str    = `hello world`
   602  		del    = byte('-')
   603  		result = gstr.CaseDelimited(str, del)
   604  	)
   605  	fmt.Println(result)
   606  
   607  	// Output:
   608  	// hello-world
   609  }
   610  
   611  func ExampleCaseDelimitedScreaming() {
   612  	{
   613  		var (
   614  			str    = `hello world`
   615  			del    = byte('-')
   616  			result = gstr.CaseDelimitedScreaming(str, del, true)
   617  		)
   618  		fmt.Println(result)
   619  	}
   620  	{
   621  		var (
   622  			str    = `hello world`
   623  			del    = byte('-')
   624  			result = gstr.CaseDelimitedScreaming(str, del, false)
   625  		)
   626  		fmt.Println(result)
   627  	}
   628  
   629  	// Output:
   630  	// HELLO-WORLD
   631  	// hello-world
   632  }
   633  
   634  // contain
   635  func ExampleContains() {
   636  	{
   637  		var (
   638  			str    = `Hello World`
   639  			substr = `Hello`
   640  			result = gstr.Contains(str, substr)
   641  		)
   642  		fmt.Println(result)
   643  	}
   644  	{
   645  		var (
   646  			str    = `Hello World`
   647  			substr = `hello`
   648  			result = gstr.Contains(str, substr)
   649  		)
   650  		fmt.Println(result)
   651  	}
   652  
   653  	// Output:
   654  	// true
   655  	// false
   656  }
   657  
   658  func ExampleContainsI() {
   659  	var (
   660  		str     = `Hello World`
   661  		substr  = "hello"
   662  		result1 = gstr.Contains(str, substr)
   663  		result2 = gstr.ContainsI(str, substr)
   664  	)
   665  	fmt.Println(result1)
   666  	fmt.Println(result2)
   667  
   668  	// Output:
   669  	// false
   670  	// true
   671  }
   672  
   673  func ExampleContainsAny() {
   674  	{
   675  		var (
   676  			s      = `goframe`
   677  			chars  = "g"
   678  			result = gstr.ContainsAny(s, chars)
   679  		)
   680  		fmt.Println(result)
   681  	}
   682  	{
   683  		var (
   684  			s      = `goframe`
   685  			chars  = "G"
   686  			result = gstr.ContainsAny(s, chars)
   687  		)
   688  		fmt.Println(result)
   689  	}
   690  
   691  	// Output:
   692  	// true
   693  	// false
   694  }
   695  
   696  // convert
   697  func ExampleOctStr() {
   698  	var (
   699  		str    = `\346\200\241`
   700  		result = gstr.OctStr(str)
   701  	)
   702  	fmt.Println(result)
   703  
   704  	// Output:
   705  	// 怡
   706  }
   707  
   708  // domain
   709  func ExampleIsSubDomain() {
   710  	var (
   711  		subDomain  = `s.goframe.org`
   712  		mainDomain = `goframe.org`
   713  		result     = gstr.IsSubDomain(subDomain, mainDomain)
   714  	)
   715  	fmt.Println(result)
   716  
   717  	// Output:
   718  	// true
   719  }
   720  
   721  // levenshtein
   722  func ExampleLevenshtein() {
   723  	var (
   724  		str1    = "Hello World"
   725  		str2    = "hallo World"
   726  		costIns = 1
   727  		costRep = 1
   728  		costDel = 1
   729  		result  = gstr.Levenshtein(str1, str2, costIns, costRep, costDel)
   730  	)
   731  	fmt.Println(result)
   732  
   733  	// Output:
   734  	// 2
   735  }
   736  
   737  // parse
   738  func ExampleParse() {
   739  	{
   740  		var (
   741  			str       = `v1=m&v2=n`
   742  			result, _ = gstr.Parse(str)
   743  		)
   744  		fmt.Println(result)
   745  	}
   746  	{
   747  		var (
   748  			str       = `v[a][a]=m&v[a][b]=n`
   749  			result, _ = gstr.Parse(str)
   750  		)
   751  		fmt.Println(result)
   752  	}
   753  	{
   754  		// The form of nested Slice is not yet supported.
   755  		var str = `v[][]=m&v[][]=n`
   756  		result, err := gstr.Parse(str)
   757  		if err != nil {
   758  			panic(err)
   759  		}
   760  		fmt.Println(result)
   761  	}
   762  	{
   763  		// This will produce an error.
   764  		var str = `v=m&v[a]=n`
   765  		result, err := gstr.Parse(str)
   766  		if err != nil {
   767  			println(err)
   768  		}
   769  		fmt.Println(result)
   770  	}
   771  	{
   772  		var (
   773  			str       = `a .[[b=c`
   774  			result, _ = gstr.Parse(str)
   775  		)
   776  		fmt.Println(result)
   777  	}
   778  
   779  	// May Output:
   780  	// map[v1:m v2:n]
   781  	// map[v:map[a:map[a:m b:n]]]
   782  	// map[v:map[]]
   783  	// Error: expected type 'map[string]interface{}' for key 'v', but got 'string'
   784  	// map[]
   785  	// map[a___[b:c]
   786  }
   787  
   788  // pos
   789  func ExamplePos() {
   790  	var (
   791  		haystack = `Hello World`
   792  		needle   = `World`
   793  		result   = gstr.Pos(haystack, needle)
   794  	)
   795  	fmt.Println(result)
   796  
   797  	// Output:
   798  	// 6
   799  }
   800  
   801  func ExamplePosRune() {
   802  	var (
   803  		haystack = `GoFrame是一款模块化、高性能、企业级的Go基础开发框架`
   804  		needle   = `Go`
   805  		posI     = gstr.PosRune(haystack, needle)
   806  		posR     = gstr.PosRRune(haystack, needle)
   807  	)
   808  	fmt.Println(posI)
   809  	fmt.Println(posR)
   810  
   811  	// Output:
   812  	// 0
   813  	// 22
   814  }
   815  
   816  func ExamplePosI() {
   817  	var (
   818  		haystack = `goframe is very, very easy to use`
   819  		needle   = `very`
   820  		posI     = gstr.PosI(haystack, needle)
   821  		posR     = gstr.PosR(haystack, needle)
   822  	)
   823  	fmt.Println(posI)
   824  	fmt.Println(posR)
   825  
   826  	// Output:
   827  	// 11
   828  	// 17
   829  }
   830  
   831  func ExamplePosIRune() {
   832  	{
   833  		var (
   834  			haystack    = `GoFrame是一款模块化、高性能、企业级的Go基础开发框架`
   835  			needle      = `高性能`
   836  			startOffset = 10
   837  			result      = gstr.PosIRune(haystack, needle, startOffset)
   838  		)
   839  		fmt.Println(result)
   840  	}
   841  	{
   842  		var (
   843  			haystack    = `GoFrame是一款模块化、高性能、企业级的Go基础开发框架`
   844  			needle      = `高性能`
   845  			startOffset = 30
   846  			result      = gstr.PosIRune(haystack, needle, startOffset)
   847  		)
   848  		fmt.Println(result)
   849  	}
   850  
   851  	// Output:
   852  	// 14
   853  	// -1
   854  }
   855  
   856  func ExamplePosR() {
   857  	var (
   858  		haystack = `goframe is very, very easy to use`
   859  		needle   = `very`
   860  		posI     = gstr.PosI(haystack, needle)
   861  		posR     = gstr.PosR(haystack, needle)
   862  	)
   863  	fmt.Println(posI)
   864  	fmt.Println(posR)
   865  
   866  	// Output:
   867  	// 11
   868  	// 17
   869  }
   870  
   871  func ExamplePosRRune() {
   872  	var (
   873  		haystack = `GoFrame是一款模块化、高性能、企业级的Go基础开发框架`
   874  		needle   = `Go`
   875  		posI     = gstr.PosIRune(haystack, needle)
   876  		posR     = gstr.PosRRune(haystack, needle)
   877  	)
   878  	fmt.Println(posI)
   879  	fmt.Println(posR)
   880  
   881  	// Output:
   882  	// 0
   883  	// 22
   884  }
   885  
   886  func ExamplePosRI() {
   887  	var (
   888  		haystack = `goframe is very, very easy to use`
   889  		needle   = `VERY`
   890  		posI     = gstr.PosI(haystack, needle)
   891  		posR     = gstr.PosRI(haystack, needle)
   892  	)
   893  	fmt.Println(posI)
   894  	fmt.Println(posR)
   895  
   896  	// Output:
   897  	// 11
   898  	// 17
   899  }
   900  
   901  func ExamplePosRIRune() {
   902  	var (
   903  		haystack = `GoFrame是一款模块化、高性能、企业级的Go基础开发框架`
   904  		needle   = `GO`
   905  		posI     = gstr.PosIRune(haystack, needle)
   906  		posR     = gstr.PosRIRune(haystack, needle)
   907  	)
   908  	fmt.Println(posI)
   909  	fmt.Println(posR)
   910  
   911  	// Output:
   912  	// 0
   913  	// 22
   914  }
   915  
   916  // replace
   917  func ExampleReplace() {
   918  	var (
   919  		origin  = `golang is very nice!`
   920  		search  = `golang`
   921  		replace = `goframe`
   922  		result  = gstr.Replace(origin, search, replace)
   923  	)
   924  	fmt.Println(result)
   925  
   926  	// Output:
   927  	// goframe is very nice!
   928  }
   929  
   930  func ExampleReplaceI() {
   931  	var (
   932  		origin  = `golang is very nice!`
   933  		search  = `GOLANG`
   934  		replace = `goframe`
   935  		result  = gstr.ReplaceI(origin, search, replace)
   936  	)
   937  	fmt.Println(result)
   938  
   939  	// Output:
   940  	// goframe is very nice!
   941  }
   942  
   943  func ExampleReplaceByArray() {
   944  	{
   945  		var (
   946  			origin = `golang is very nice`
   947  			array  = []string{"lang", "frame"}
   948  			result = gstr.ReplaceByArray(origin, array)
   949  		)
   950  		fmt.Println(result)
   951  	}
   952  	{
   953  		var (
   954  			origin = `golang is very good`
   955  			array  = []string{"golang", "goframe", "good", "nice"}
   956  			result = gstr.ReplaceByArray(origin, array)
   957  		)
   958  		fmt.Println(result)
   959  	}
   960  
   961  	// Output:
   962  	// goframe is very nice
   963  	// goframe is very nice
   964  }
   965  
   966  func ExampleReplaceIByArray() {
   967  	var (
   968  		origin = `golang is very Good`
   969  		array  = []string{"Golang", "goframe", "GOOD", "nice"}
   970  		result = gstr.ReplaceIByArray(origin, array)
   971  	)
   972  
   973  	fmt.Println(result)
   974  
   975  	// Output:
   976  	// goframe is very nice
   977  }
   978  
   979  func ExampleReplaceByMap() {
   980  	{
   981  		var (
   982  			origin   = `golang is very nice`
   983  			replaces = map[string]string{
   984  				"lang": "frame",
   985  			}
   986  			result = gstr.ReplaceByMap(origin, replaces)
   987  		)
   988  		fmt.Println(result)
   989  	}
   990  	{
   991  		var (
   992  			origin   = `golang is very good`
   993  			replaces = map[string]string{
   994  				"golang": "goframe",
   995  				"good":   "nice",
   996  			}
   997  			result = gstr.ReplaceByMap(origin, replaces)
   998  		)
   999  		fmt.Println(result)
  1000  	}
  1001  
  1002  	// Output:
  1003  	// goframe is very nice
  1004  	// goframe is very nice
  1005  }
  1006  
  1007  func ExampleReplaceIByMap() {
  1008  	var (
  1009  		origin   = `golang is very nice`
  1010  		replaces = map[string]string{
  1011  			"Lang": "frame",
  1012  		}
  1013  		result = gstr.ReplaceIByMap(origin, replaces)
  1014  	)
  1015  	fmt.Println(result)
  1016  
  1017  	// Output:
  1018  	// goframe is very nice
  1019  }
  1020  
  1021  // similartext
  1022  func ExampleSimilarText() {
  1023  	var (
  1024  		first   = `AaBbCcDd`
  1025  		second  = `ad`
  1026  		percent = 0.80
  1027  		result  = gstr.SimilarText(first, second, &percent)
  1028  	)
  1029  	fmt.Println(result)
  1030  
  1031  	// Output:
  1032  	// 2
  1033  }
  1034  
  1035  // soundex
  1036  func ExampleSoundex() {
  1037  	var (
  1038  		str1    = `Hello`
  1039  		str2    = `Hallo`
  1040  		result1 = gstr.Soundex(str1)
  1041  		result2 = gstr.Soundex(str2)
  1042  	)
  1043  	fmt.Println(result1, result2)
  1044  
  1045  	// Output:
  1046  	// H400 H400
  1047  }
  1048  
  1049  // str
  1050  func ExampleStr() {
  1051  	var (
  1052  		haystack = `xxx.jpg`
  1053  		needle   = `.`
  1054  		result   = gstr.Str(haystack, needle)
  1055  	)
  1056  	fmt.Println(result)
  1057  
  1058  	// Output:
  1059  	// .jpg
  1060  }
  1061  
  1062  func ExampleStrEx() {
  1063  	var (
  1064  		haystack = `https://goframe.org/index.html?a=1&b=2`
  1065  		needle   = `?`
  1066  		result   = gstr.StrEx(haystack, needle)
  1067  	)
  1068  	fmt.Println(result)
  1069  
  1070  	// Output:
  1071  	// a=1&b=2
  1072  }
  1073  
  1074  func ExampleStrTill() {
  1075  	var (
  1076  		haystack = `https://goframe.org/index.html?test=123456`
  1077  		needle   = `?`
  1078  		result   = gstr.StrTill(haystack, needle)
  1079  	)
  1080  	fmt.Println(result)
  1081  
  1082  	// Output:
  1083  	// https://goframe.org/index.html?
  1084  }
  1085  
  1086  func ExampleStrTillEx() {
  1087  	var (
  1088  		haystack = `https://goframe.org/index.html?test=123456`
  1089  		needle   = `?`
  1090  		result   = gstr.StrTillEx(haystack, needle)
  1091  	)
  1092  	fmt.Println(result)
  1093  
  1094  	// Output:
  1095  	// https://goframe.org/index.html
  1096  }
  1097  
  1098  // substr
  1099  func ExampleSubStr() {
  1100  	var (
  1101  		str    = `1234567890`
  1102  		start  = 0
  1103  		length = 4
  1104  		subStr = gstr.SubStr(str, start, length)
  1105  	)
  1106  	fmt.Println(subStr)
  1107  
  1108  	// Output:
  1109  	// 1234
  1110  }
  1111  
  1112  func ExampleSubStrRune() {
  1113  	var (
  1114  		str    = `GoFrame是一款模块化、高性能、企业级的Go基础开发框架。`
  1115  		start  = 14
  1116  		length = 3
  1117  		subStr = gstr.SubStrRune(str, start, length)
  1118  	)
  1119  	fmt.Println(subStr)
  1120  
  1121  	// Output:
  1122  	// 高性能
  1123  }
  1124  
  1125  func ExampleStrLimit() {
  1126  	var (
  1127  		str    = `123456789`
  1128  		length = 3
  1129  		suffix = `...`
  1130  		result = gstr.StrLimit(str, length, suffix)
  1131  	)
  1132  	fmt.Println(result)
  1133  
  1134  	// Output:
  1135  	// 123...
  1136  }
  1137  
  1138  func ExampleStrLimitRune() {
  1139  	var (
  1140  		str    = `GoFrame是一款模块化、高性能、企业级的Go基础开发框架。`
  1141  		length = 17
  1142  		suffix = "..."
  1143  		result = gstr.StrLimitRune(str, length, suffix)
  1144  	)
  1145  	fmt.Println(result)
  1146  
  1147  	// Output:
  1148  	// GoFrame是一款模块化、高性能...
  1149  }
  1150  
  1151  func ExampleSubStrFrom() {
  1152  	var (
  1153  		str  = "我爱GoFrameGood"
  1154  		need = `爱`
  1155  	)
  1156  
  1157  	fmt.Println(gstr.SubStrFrom(str, need))
  1158  
  1159  	// Output:
  1160  	// 爱GoFrameGood
  1161  }
  1162  
  1163  func ExampleSubStrFromEx() {
  1164  	var (
  1165  		str  = "我爱GoFrameGood"
  1166  		need = `爱`
  1167  	)
  1168  
  1169  	fmt.Println(gstr.SubStrFromEx(str, need))
  1170  
  1171  	// Output:
  1172  	// GoFrameGood
  1173  }
  1174  
  1175  func ExampleSubStrFromR() {
  1176  	var (
  1177  		str  = "我爱GoFrameGood"
  1178  		need = `Go`
  1179  	)
  1180  
  1181  	fmt.Println(gstr.SubStrFromR(str, need))
  1182  
  1183  	// Output:
  1184  	// Good
  1185  }
  1186  
  1187  func ExampleSubStrFromREx() {
  1188  	var (
  1189  		str  = "我爱GoFrameGood"
  1190  		need = `Go`
  1191  	)
  1192  
  1193  	fmt.Println(gstr.SubStrFromREx(str, need))
  1194  
  1195  	// Output:
  1196  	// od
  1197  }
  1198  
  1199  // trim
  1200  func ExampleTrim() {
  1201  	var (
  1202  		str           = `*Hello World*`
  1203  		characterMask = "*"
  1204  		result        = gstr.Trim(str, characterMask)
  1205  	)
  1206  	fmt.Println(result)
  1207  
  1208  	// Output:
  1209  	// Hello World
  1210  }
  1211  
  1212  func ExampleTrimStr() {
  1213  	var (
  1214  		str    = `Hello World`
  1215  		cut    = "World"
  1216  		count  = -1
  1217  		result = gstr.TrimStr(str, cut, count)
  1218  	)
  1219  	fmt.Println(result)
  1220  
  1221  	// Output:
  1222  	// Hello
  1223  }
  1224  
  1225  func ExampleTrimLeft() {
  1226  	var (
  1227  		str           = `*Hello World*`
  1228  		characterMask = "*"
  1229  		result        = gstr.TrimLeft(str, characterMask)
  1230  	)
  1231  	fmt.Println(result)
  1232  
  1233  	// Output:
  1234  	// Hello World*
  1235  }
  1236  
  1237  func ExampleTrimLeftStr() {
  1238  	var (
  1239  		str    = `**Hello World**`
  1240  		cut    = "*"
  1241  		count  = 1
  1242  		result = gstr.TrimLeftStr(str, cut, count)
  1243  	)
  1244  	fmt.Println(result)
  1245  
  1246  	// Output:
  1247  	// *Hello World**
  1248  }
  1249  
  1250  func ExampleTrimRight() {
  1251  	var (
  1252  		str           = `**Hello World**`
  1253  		characterMask = "*def" // []byte{"*", "d", "e", "f"}
  1254  		result        = gstr.TrimRight(str, characterMask)
  1255  	)
  1256  	fmt.Println(result)
  1257  
  1258  	// Output:
  1259  	// **Hello Worl
  1260  }
  1261  
  1262  func ExampleTrimRightStr() {
  1263  	var (
  1264  		str    = `Hello World!`
  1265  		cut    = "!"
  1266  		count  = -1
  1267  		result = gstr.TrimRightStr(str, cut, count)
  1268  	)
  1269  	fmt.Println(result)
  1270  
  1271  	// Output:
  1272  	// Hello World
  1273  }
  1274  
  1275  func ExampleTrimAll() {
  1276  	var (
  1277  		str           = `*Hello World*`
  1278  		characterMask = "*"
  1279  		result        = gstr.TrimAll(str, characterMask)
  1280  	)
  1281  	fmt.Println(result)
  1282  
  1283  	// Output:
  1284  	// HelloWorld
  1285  }
  1286  
  1287  // version
  1288  func ExampleCompareVersion() {
  1289  	fmt.Println(gstr.CompareVersion("v2.11.9", "v2.10.8"))
  1290  	fmt.Println(gstr.CompareVersion("1.10.8", "1.19.7"))
  1291  	fmt.Println(gstr.CompareVersion("2.8.beta", "2.8"))
  1292  
  1293  	// Output:
  1294  	// 1
  1295  	// -1
  1296  	// 0
  1297  }
  1298  
  1299  func ExampleCompareVersionGo() {
  1300  	fmt.Println(gstr.CompareVersionGo("v2.11.9", "v2.10.8"))
  1301  	fmt.Println(gstr.CompareVersionGo("v4.20.1", "v4.20.1+incompatible"))
  1302  	fmt.Println(gstr.CompareVersionGo(
  1303  		"v0.0.2-20180626092158-b2ccc119800e",
  1304  		"v1.0.1-20190626092158-b2ccc519800e",
  1305  	))
  1306  
  1307  	// Output:
  1308  	// 1
  1309  	// 1
  1310  	// -1
  1311  }