392
技術社區[雲棲]
碼棧開發手冊(四)---編碼方式開發(字符串處理相關函數)
6.1 J_String(總字符串,操作行為,參數值)
作用:對字符串操作函數的匯總
操作行為:是否包含 長度 取左子串 取右子串 取子串 轉小寫 轉大寫 僅數字 僅字母 僅小寫 僅大寫 拆分
例子:
Func StringDemo()
;1、判斷字符串中有無包含某個子串,如果包含,返回子串包含的位置,否則返回0
local $str1 = "我是一個字符串"
if J_String($str1,'是否包含','字符') > 0 then
J_MsgBox('包含子串')
endif
;2、取字符串長度
local $len = J_String($str1,'長度')
J_MsgBox("長度:"&$len)
;3、從左邊取子串:從左邊第一個字符開始,參數值為要取的字符串長度
local $subStr1 = J_String($str1,'取左子串','2')
J_MsgBox($subStr1);我是
;4、從右邊取子串:從最後一個字符開始,參數值為要取的字符串長度
local $subStr2 = J_String($str1,'取右子串','3')
J_MsgBox($subStr2);
;5、取子串:參數值需要有提供2個數據,以英文逗號割開:開始位置,截取子串長度
;將其中的“一個”提取出來,從第3個字符開始取,取2個字符
local $subStr3 = J_String($str1,'取子串','3,2')
J_MsgBox($subStr3)
;6、轉化
local $str2 = "Hello"
;轉成小寫
local $subStr4 = J_String($str2,'轉小寫','')
J_MsgBox($subStr4);hello
;轉成大寫
local $subStr5 = J_String($str2,'轉大寫','')
J_MsgBox($subStr5);HELLO
;7、判斷
;是否純數字
local $str3="1234"
if J_String($str3,'僅數字','') = 1 then
J_MsgBox('字符串是純數字')
endif
;是否純平字母a到z,A到Z
local $str4="abcADK"
if J_String($str4,'僅字母') = 1 then
J_MsgBox('字符串是純字母')
endif
;字母串中是否僅包括:小寫字母 a到z
local $str6='abcd'
if J_String($str6,'僅小寫') = 1 then
J_MsgBox('字符串中全是小寫字母')
endif
;字母串中是否僅包括:大寫字母 A到Z
local $str6='CDFEF'
if J_String($str6,'僅大寫') = 1 then
J_MsgBox('字符串中全是大寫字母')
endif
;8、拆分:返回值是數組,數組第一個元素值為子串的數量
local $str7 = "123,456,788"
local $array = J_String($str7,'拆分',',')
;拆分成幾個串了
local $len = $array[0]
;其它元素
for $i = 1 to UBound($array) -1
J_LOG('元素:'&$array[$i])
next
EndFunc ;==>
6.2 J_StringReplace(總字符串,目標字符串,替換成的字符串)
作用:將一個字符串中的一段文本替換成其他文本
返回值:替換後的字符串
例子:
Func Example34()
Local $text = "1122333"
;將文本$text中的文本22替換成文本8888
Local $new_text = J_StringReplace($text, "22", "8888")
J_MsgBox($new_text)
EndFunc ;==>Example34
6.3 J_EXP_MaxCount(總字符串,正則表達式)
作用:返回滿足此正則表達式匹配的個數
返回值:返回滿足此正則表達式匹配的個數
例子:
Func Example35()
;聲明一個名為$string的局域變量,保存文本 "hello1234hi4567good7890"
Local $string = "hello1234hi4567good7890"
;方法1,優點,速度快,一般用於批量提取
;聲明一個名為$open的局域變量,保存從文本$string中提取滿足正則表達式的數據集合
Local $open = J_EXP_Open($string, "\d+")
;聲明一個名為$max的局域變量,保存$open數據集合中的數據個數
Local $max = J_EXP_MaxCount($open, "\d+")
;創建一個循環,從1開始遍曆這個集合
For $i = 1 To $max Step 1
;聲明一個名為$sub_string的局域變量,保存逐個取出集合open中的數據
Local $sub_string = J_EXP($open, "\d+", $i)
;通過係統提示框的形式顯示出$sub_string裏裝載的數據
J_MsgBox($sub_string, $i)
Next
;方法2,優點,簡單,一般用於單條提取
;聲明一個名為$sub_string2的局域變量,保存文本$string中滿足正則表達式\d+的第6個數據
Local $sub_string2 = J_EXP($string, "\d+", 6)
J_MsgBox($sub_string2)
;用於判斷是否滿足正則表達式,第三個參數(位置)必須為0
Local $result = J_EXP($string, "\w+\d+", 0)
If $result = 1 Then
J_MsgBox("滿足正則表達式\w+\d+")
Else
J_MsgBox("不滿足正則表達式\w+\d+")
EndIf
EndFunc ;==>Example35
6.4 J_EXP(總字符串,正則表達式,[位置:1])
作用1:通過正則表達式獲得指定的文本
作用2:當位置=0的時候返回值為1或者0代表是否符合此正則表達式
例子:
Func Example35()
;聲明一個名為$string的局域變量,保存文本 "hello1234hi4567good7890"
Local $string = "hello1234hi4567good7890"
;方法1,優點,速度快,一般用於批量提取
;聲明一個名為$open的局域變量,保存從文本$string中提取滿足正則表達式的數據集合
Local $open = J_EXP_Open($string, "\d+")
;聲明一個名為$max的局域變量,保存$open數據集合中的數據個數
Local $max = J_EXP_MaxCount($open, "\d+")
;創建一個循環,從1開始遍曆這個集合
For $i = 1 To $max Step 1
;聲明一個名為$sub_string的局域變量,保存逐個取出集合open中的數據
Local $sub_string = J_EXP($open, "\d+", $i)
;通過係統提示框的形式顯示出$sub_string裏裝載的數據
J_MsgBox($sub_string, $i)
Next
;方法2,優點,簡單,一般用於單條提取
;聲明一個名為$sub_string2的局域變量,保存文本$string中滿足正則表達式\d+的第6個數據
Local $sub_string2 = J_EXP($string, "\d+", 6)
J_MsgBox($sub_string2)
;用於判斷是否滿足正則表達式,第三個參數(位置)必須為0
Local $result = J_EXP($string, "\w+\d+", 0)
If $result = 1 Then
J_MsgBox("滿足正則表達式\w+\d+")
Else
J_MsgBox("不滿足正則表達式\w+\d+")
EndIf
EndFunc ;==>Example35
正則表達式語法:
語法:
\d匹配一個數字 \D匹配非數字
\s 匹配一個空格 \S匹配非空格
\w匹配字母、數字及下劃線 \W匹配非字母、非數字、非下劃線
\n匹配換行
.匹配除了換行之外的任何東西
{10}匹配10次
表示重複0到若幹次
+表示重複1到若幹次
?表示匹配的有可能不出現
.?匹配任何數據啥玩意都行,不能換行
.+?盡可能少匹配數據,至少出現一次
匹配任何英文符號,符號前都要加”\”
[abc] 匹配abc隨便哪一個字母
[^abc] 匹配除abc隨便哪一個字母
(想要的數據) 抓取想要的數據用括號括起來
(?:exp)分組不抓取
6.5 J_Screct(文本,[模式:加密])
作用:用於加密一段文本. 模式:加密/解密 返回值:加密/解密後的文本
例子:
Func Example41()
Local $string = "hello123456"
Local $screct1 = J_Screct($string, "加密")
J_MsgBox($screct1)
Local $screct2 = J_Screct($screct1, "解密")
J_MsgBox($screct2)
EndFunc ;==>Example41
本文轉自碼棧平台
最後更新:2017-05-13 08:46:38