芬兰湾的科特林利用正则表达式如何构建正则表达式详解

  

  

对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云。

  

其实只是对正则不了解而以,了解了你就会发现,原来就这样啊~ ~正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解,最近在学习芬兰湾的科特林,芬兰湾的科特林提供了一个正则表达式类正则表达式、下面来一起学习下吧。

  

  

           函数名称   功能说明               匹配(输入:CharSequence进行):布尔   输入字符串全部匹配         containsMatchIn(输入:CharSequence进行):布尔   输入字符串至少有一个匹配         matchEntire(输入:CharSequence进行):MatchResult& # 63;   输入字符串全部匹配,返回一个匹配结果对象         替换(输入:CharSequence进行替换:字符串):字符串   把输入字符串中匹配的部分替换成替代的内容         替换(输入:CharSequence进行变换:(MatchResult)→CharSequence进行):字符串   把输入字符串中匹配到的值,用函数变换映射之后的新值替换         找到(输入:CharSequence进行startIndex: Int=0): MatchResult& # 63;   返回输入字符串中第一个匹配的值         findAll(输入:CharSequence进行startIndex: Int=0): Sequence   返回输入字符串中所有匹配的值MatchResult的序列            

  

  

输入的字符串全部匹配”正则表达式”返回真,否则返回错误的。

        val r1=Regex (“[a - z] +”)   println (r1.matches(六边形ABCdef))   val r2=Regex (“[a - z] +”, RegexOption.IGNORE_CASE)//忽略大小写   println (r2.matches(六边形ABCdef))   val r3=Regex (“[a - z] +”)   println (r3.matches (“ABC”))   val r4=" [a - z] + " .toRegex ()   println (r4.matches (“ABCDEFXYZ”))      

运行结果

        假   真正的   真正的   真正的      

  

输入的字符串中至少有一个匹配就返回真,否则就返回错误的。

        val r5=Regex ([0 - 9] +)   println (r5.containsMatchIn (“012”abdc))   println (r5.containsMatchIn (“JAVAI”))      

运行结果

        真正的   假      

  

对字符串全部做比较,都匹配正则表达式返回一个MatcherMatchResult对象,否则返回零。

        val r6=Regex ([0 - 9] +)   println (r6.matchEntire (“1234567890”))   println (r6.matchEntire (“1234567890 !”)   println (r6.matchEntire (“1234567890”) & # 63; value)      

当我们使用MatcherMatchResult的价值值来显示匹配结果,由于matchEntire函数有可能返回一个null,所以这里使用了安全调用符号“?”。
  

  

运行结果

        kotlin.text.MatcherMatchResult@1fb3ebeb   零   1234567890      

  

<代码>替换(输入:CharSequence进行替换:字符串):字符串
  

  

输入的字符串匹配的部分替换成替代的内容。

        val r7=Regex ([0 - 9] +)   println (r7。替换(“12345 xyz33”、“abcd”))      

这个例子是把数字替换成了abcd。

  

  

函数签名<代码>替换(输入:CharSequence进行变换:(MatchResult)→CharSequence进行):字符串
  

  

它的功能是把输入的字符串中匹配的值,用函数变换映射之后的新值进行替换。

        val r8=Regex ([0 - 9] +)   println (r8。替换(12 xyz9 {(it.value.toInt () * it.value.toInt ()) .toString ()}))      

我们可以看的到,输入的字符串中有两个数字,一个是12在字符串的前部,一个是9在字符串的后部。
  

  

运行结果

        144年xyz81      

12被替换成144了,9被替换成81了。

  

  

返回字符串中第一个匹配的MatcherMatchResult对象

        val r9机型=Regex ([0 - 9] +)   println (r9.find (“123”adpoiw87weeruu005))   println (r9.find (“123”adpoiw87weeruu005) & # 63; value)

芬兰湾的科特林利用正则表达式如何构建正则表达式详解