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

 

转载于:https://www.cnblogs.com/gnivor/p/4267861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值