先介紹幾種常用的方法:
創(chuàng)新互聯(lián)專注于湘潭縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),購(gòu)物商城網(wǎng)站建設(shè)。湘潭縣網(wǎng)站建設(shè)公司,為湘潭縣等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1、使用MatchString函數(shù)或Match函數(shù)
regexp.MatchString(pattern string, s string) pattern為正則表達(dá)式,s為需要校驗(yàn)的字符串
regexp.Match(pattern string, b []byte) pattern為正則表達(dá)式,s為需要校驗(yàn)的字符串
它們的作用都是匹配,區(qū)別在于參數(shù)為字符串和切片
實(shí)例如下:
2、使用 Compile函數(shù)或MustCompile函數(shù)
它們的區(qū)別是Compile返回兩個(gè)參數(shù) Regexp,error類型,而MustCompile只返回 Regexp類型
它們的作用是將正則表達(dá)式進(jìn)行編譯,返回優(yōu)化的 Regexp 結(jié)構(gòu)體,該結(jié)構(gòu)體有需多方法。
實(shí)例如下:
3、查找正則匹配字串( 注:函數(shù)名包含string的所傳參數(shù)為string 其他的均為[]byte 帶All是所有)
查找正則匹配的字符串位置( 注:函數(shù)名包含string的所傳參數(shù)為string 其他的均為[]byte 帶All是所有)
4、替換
正則替換
按原文替換
函數(shù)處理替換源字串
5、Regexp結(jié)構(gòu)體中一些常用的方法
按值傳遞函數(shù)參數(shù),是拷貝參數(shù)的實(shí)際值到函數(shù)的形式參數(shù)的方法調(diào)用。在這種情況下,參數(shù)在函數(shù)內(nèi)變化對(duì)參數(shù)不會(huì)有影響。
默認(rèn)情況下,Go編程語(yǔ)言使用調(diào)用通過值的方法來傳遞參數(shù)。在一般情況下,這意味著,在函數(shù)內(nèi)碼不能改變用來調(diào)用所述函數(shù)的參數(shù)??紤]函數(shù)swap()的定義如下。
代碼如下:
/* function definition to swap the values */
func swap(int x, int y) int {
var temp int
temp = x /* save the value of x */
x = y /* put y into x */
y = temp /* put temp into y */
return temp;
}
現(xiàn)在,讓我們通過使實(shí)際值作為在以下示例調(diào)用函數(shù)swap():
代碼如下:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int = 200
fmt.Printf("Before swap, value of a : %d\n", a )
fmt.Printf("Before swap, value of b : %d\n", b )
/* calling a function to swap the values */
swap(a, b)
fmt.Printf("After swap, value of a : %d\n", a )
fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x, y int) int {
var temp int
temp = x /* save the value of x */
x = y /* put y into x */
y = temp /* put temp into y */
return temp;
}
讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200
這表明,參數(shù)值沒有被改變,雖然它們已經(jīng)在函數(shù)內(nèi)部改變。
通過傳遞函數(shù)參數(shù),即是拷貝參數(shù)的地址到形式參數(shù)的參考方法調(diào)用。在函數(shù)內(nèi)部,地址是訪問調(diào)用中使用的實(shí)際參數(shù)。這意味著,對(duì)參數(shù)的更改會(huì)影響傳遞的參數(shù)。
要通過引用傳遞的值,參數(shù)的指針被傳遞給函數(shù)就像任何其他的值。所以,相應(yīng)的,需要聲明函數(shù)的參數(shù)為指針類型如下面的函數(shù)swap(),它的交換兩個(gè)整型變量的值指向它的參數(shù)。
代碼如下:
/* function definition to swap the values */
func swap(x *int, y *int) {
var temp int
temp = *x /* save the value at address x */
*x = *y /* put y into x */
*y = temp /* put temp into y */
}
現(xiàn)在,讓我們調(diào)用函數(shù)swap()通過引用作為在下面的示例中傳遞數(shù)值:
代碼如下:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int= 200
fmt.Printf("Before swap, value of a : %d\n", a )
fmt.Printf("Before swap, value of b : %d\n", b )
/* calling a function to swap the values.
* a indicates pointer to a ie. address of variable a and
* b indicates pointer to b ie. address of variable b.
*/
swap(a, b)
fmt.Printf("After swap, value of a : %d\n", a )
fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x /* save the value at address x */
*x = *y /* put y into x */
*y = temp /* put temp into y */
}
讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100
這表明變化的功能以及不同于通過值調(diào)用的外部體現(xiàn)的改變不能反映函數(shù)之外。
1.例如字符串查找、子串、模式匹配等。?當(dāng)在 Lua 中對(duì)字符串做索引時(shí),第一個(gè)字符從 1 開始計(jì)算(而不是 C 里的 0 )。 索引可以是負(fù)數(shù),它指從字符串末尾反向解析。 即,最后一個(gè)字符在 -1 位置處,等等。
2.字符串庫(kù)中的所有函數(shù)都在表 string 中。?它還將其設(shè)置為字符串元表的 __index 域。 因此,你可以以面向?qū)ο蟮男问绞褂米址瘮?shù)。 例如,string.byte(s,i) 可以寫成 s:byte(i)。
字符串庫(kù)假定采用單字節(jié)字符編碼。
string.byte (s [, i [, j]])
返回字符 s[i], s[i+1], ... ,s[j] 的內(nèi)部數(shù)字編碼。 i 的默認(rèn)值是 1 ; j 的默認(rèn)值是 i。 這些索引以函數(shù) string.sub 的規(guī)則修正。
數(shù)字編碼沒有必要跨平臺(tái)。
string.char (···)
接收零或更多的整數(shù)。 返回和參數(shù)數(shù)量相同長(zhǎng)度的字符串。 其中每個(gè)字符的內(nèi)部編碼值等于對(duì)應(yīng)的參數(shù)值。
數(shù)字編碼沒有必要跨平臺(tái)。
string.dump (function [, strip])
3.返回包含有以二進(jìn)制方式表示的(一個(gè) 二進(jìn)制代碼塊 )指定函數(shù)的字符串。?之后可以用 load 調(diào)用這個(gè)字符串獲得 該函數(shù)的副本(但是綁定新的上值)。 如果 strip 為真值, 二進(jìn)制代碼塊不攜帶該函數(shù)的調(diào)試信息 (局部變量名,行號(hào),等等。)。
帶上值的函數(shù)只保存上值的數(shù)目。 當(dāng)(再次)加載時(shí),這些上值被更新為 nil 的實(shí)例。 (你可以使用調(diào)試庫(kù)按你需要的方式來序列化上值,并重載到函數(shù)中)
string.find (s, pattern [, init [, plain]])
4.查找第一個(gè)字符串 s 中匹配到的 pattern )。?如果找到一個(gè)匹配,find 會(huì)返回 s 中關(guān)于它起始及終點(diǎn)位置的索引; 否則,返回 nil。 第三個(gè)可選數(shù)字參數(shù) init 指明從哪里開始搜索; 默認(rèn)值為 1 ,同時(shí)可以是負(fù)值。 第四個(gè)可選參數(shù) plain 為 true 時(shí), 關(guān)閉模式匹配機(jī)制。 此時(shí)函數(shù)僅做直接的 “查找子串”的操作, 而 pattern 中沒有字符被看作魔法字符。 注意,如果給定了 plain ,就必須寫上 init 。
如果在模式中定義了捕獲,捕獲到的若干值也會(huì)在兩個(gè)索引之后返回。
string.format (formatstring, ···)
5.返回不定數(shù)量參數(shù)的格式化版本, 格式化串為第一個(gè)參數(shù)(必須是一個(gè)字符串)。格式化字符串遵循 ISO C 函數(shù) sprintf 的規(guī)則。 不同點(diǎn)在于選項(xiàng) *, h, L, l, n, p 不支持, 另外還增加了一個(gè)選項(xiàng) q。 q 選項(xiàng)將一個(gè)字符串格式化為兩個(gè)雙引號(hào)括起,對(duì)內(nèi)部字符做恰當(dāng)?shù)霓D(zhuǎn)義處理的字符串。 該字符串可以安全的被 Lua 解釋器讀回來。
希望能幫到你,謝謝!
通過String.valueOf(char)函數(shù)把字符轉(zhuǎn)化成字符串舉例char a='A';//定義一個(gè)字符aString str = String.valueOf(a);//把字符a轉(zhuǎn)換成字符串str