zoukankan      html  css  js  c++  java
  • Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx

    基础知识:正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html  版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源

    使用格式:  见java API  http://docs.oracle.com/javase/7/docs/api/

    java : java.util.regex.Pattern

    scala : scala.util.matching 

    scala里使用正则表达式

    可以通过向Regex构造器传递字符串构造新的正则表达式。

    val Decimal = new Regex("(-)?(\d+)(\.\d*)?")

    注意:每个反斜杠都出现两次,因为Java和Scala里单个反斜杠是字符串文本的转义符。

    Scala的原始字符串提供了另一种方案:将原始字符串夹在三引号(""")之间。这样原始字符串的所有字符与输入完全一致

    val Decimal = new Regex("""(-)?(d+)(.d*)?""")

    也可写为

    val Decimal = """(-)?(d+)(.d*)?""".r

    即在字符串后面添加.r即可获得正则表达式。

    用正则表达式查找:
    regex findFirstIn str:查找字符串str中正则表达式regex的首次出现,返回Option类型的结果
    regex findAllIn str:查找字符串str中正则表达式regex的所有出现,返回Option类型的结果
    regex findPrefixOf str:查找字符串str中开始位置正则表达式regex的出现,返回Option类型的结果

      def main(args:Array[String]):Unit={
        val Decimal = """(-)?(d+)(.d*)?""".r;
    	val input : String = "My String is for -1.0 to 99 by 3";
    	//查找出所有的数字
    	println("==number==")
    	for(s<- Decimal findAllIn input)
    	  println(s);
    	//查找第一个数字
    	println("==first number==");
    	println(Decimal findFirstIn input);
    	println("查找开头为数字的字符串的首个数字");
    	//若字符串以数字为开头则输出Some(num),否则输出None
    	println(Decimal findPrefixOf input)
    
      }
    

    结果:

    ==number==
    -1.0
    99
    3
    ==first number==
    Some(-1.0)
    查找开头为数字的字符串的首个数字
    None
  • 相关阅读:
    Linux下修改Mysql的用户(root)的密码
    Mysql 用户权限管理
    mysql的四种启动方式
    MySQL慢日志的相关参数
    mysqlsla slow-query常用用法

    导包和模块注意的问题
    Python面向对象之魔法方法/双下方法
    __new__问题
    转:Python常见字符编码及其之间的转换
  • 原文地址:https://www.cnblogs.com/gnivor/p/4267861.html
Copyright © 2011-2022 走看看