怎样在scala正则表达式提取器中使用小括号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在scala正则表达式提取器中使用小括号相关的知识,希望对你有一定的参考价值。

不是可以吗?
看看Regex的unapplySeq方法:

m.group(1 to groupCount) 是全取出来了,所以小括号套小括号也没问题:


 

参考技术A 匹配数字正则式为例:
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正则表达式提取器中使用小括号的主要内容,如果未能解决你的问题,请参考以下文章

怎么用正则表达式匹配小括号里内容(含括号)?

php 正则表达式 提取字符串内小括号中的数字,只要数字

一日一技:一个括号两种意思,正则表达式奇怪的小括号

Pandas 正则表达式返回括号中的值

正则表达式如何匹配提取括号中的内容

R stringr 正则表达式提取括号内的字符