VB正则表达式("((-)?\d+(.)?\d*)")是表示啥意思?只匹配数字吗?其中的(.)是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB正则表达式("((-)?\d+(.)?\d*)")是表示啥意思?只匹配数字吗?其中的(.)是啥意思?相关的知识,希望对你有一定的参考价值。

(.) 匹配除“\\n”之外的任何单个字符。


("((-)?\\d+(.)?\\d*)")'最外层  首先是引号引着的  

((-)?\\d+(.)?\\d*)  直接去括号

(-)?\\d+(.)?\\d*  

(-)?   代表 0-1 个 - 号

\\d+   代表 1个以上数字

(.)?  代表 0-1个 除换行号以处的任意字符

\\d*  代表 0-N 多次的数字


给你一个小工具 自己写的  学习正则用的


参考技术A 匹配数字,类似 234,493 234,-345,345-433 这类数字
点 表示匹配可视字符,比如换行符不可视。
这个表达式有点缺陷,如果“4566中国” ,它会匹配“4566中” ,其中 (.)? 匹配“中”,所以最好改为 (-)?
参考技术B .
(.)
就是小数点
这个就是可正负可带小数点 类似浮点数追问

. 不是匹配除换行符以外的任意字符吗?小数点不是应该\. ?还是()有特殊的功能

正则表达式(Kotlin)

课题

  1. 使用正则表达式匹配字符串
    使用正则表达式 "\d{3}-(\d{4})-\d{2}" 匹配字符串 "123-4567-89"
    返回匹配结果:’"123-4567-89" 以及 "4567"
  2. 使用正则表达式替换字符串
    使用正则表达式 "\d+" 匹配字符串 "123-4567-89"
    将匹配结果即三个数字串全部翻转过来,返回结果 "321-7654-98"。
  3. 使用正则表达式分割字符串
    使用正则表达式 "%(begin|next|end)%" 分割字符串"%begin%hello%next%world%end%"
    返回正则表达式分隔符之间的两个字符串 "hello" 和 "world"。

Kotlin

fun main(args: Array<String>) {
    val s = "123-4567-89"
    val r = Regex("\\d{3}-(\\d{4})-\\d{2}")
    val m = r.find(s)
    if (m != null)
        for (kv in m.groupValues.withIndex())
            println("group ${kv.index} : ${kv.value}")

    val r2 = Regex("\\d+")
    val s2 = r2.replace(s) {
        it.groupValues[0].reversed()
    }
    println(s2)

    val r3 = Regex("%(begin|next|end)%")
    val s3 = "%begin%hello%next%world%end%"
    println(r3.split(s3))
}

/*
group 0 : 123-4567-89
group 1 : 4567
321-7654-98
[, hello, world, ]
*/

以上是关于VB正则表达式("((-)?\d+(.)?\d*)")是表示啥意思?只匹配数字吗?其中的(.)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET的正则表达式

用正则表达式限制文本框只能输入数字和+

java 正则表达式是啥?

Java中啥是正则表达式

PHP正则表达式

js里面的正则\d+和\d*有啥区别?