怎样在scala正则表达式提取器中使用小括号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在scala正则表达式提取器中使用小括号相关的知识,希望对你有一定的参考价值。
不是可以吗?
看看Regex的unapplySeq方法:
m.group(1 to groupCount) 是全取出来了,所以小括号套小括号也没问题:
scala> val Num = """((?:0|[1-9]\d*)(?:\.\d*)?)""".r
Num: scala.util.matching.Regex = ((?:0|[1-9]\d*)(?:\.\d*)?)
scala> val Num(x) = "12.35"
x: String = 12.35
可以看到,Num正则式中一共有三对小括号,但是我们关心的只是整个数字,所以希望写成Num(x)这种形式,而不是把其它两个不想要的小括号也出现。正如我代码里面写的。
怎么用正则表达式匹配小括号里内容(含括号)?
比如说 华联超市(回龙观店)
怎样选中'(回龙观店)'这部分~
如果是中文括号(回龙观店)呢?
查找以下公式:[\\((][^\\))]+[\\))]$,然后替换成空字符串。
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
参考技术A (\([^\)]*\))//[^x] 匹配除了x以外的任意字符
//* 重复零次或更多次
//+ 重复一次或更多次 参考技术B (\([^\)]+\)) 参考技术C [\((][\s\S]*[\))]本回答被提问者采纳
以上是关于怎样在scala正则表达式提取器中使用小括号的主要内容,如果未能解决你的问题,请参考以下文章