关于码栈

6.文本字符串相关

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