Scala正则表达式和括号



我有以下字符串:

tagged.big) AND tagged.medium

我需要从这个字符串中提取从标记开始的所有内容。并以一个或多个空白或)结束

这是我当前的正则表达式模式:

tagged.[),S]+

根据我期望的示例字符串:

tagged.big
tagged.medium

但现在它回来了:

tagged.big)
tagged.medium

我做错了什么?如何解决?

在正则表达式中,您使用tagged.[),S]+,它包含一个包含)、逗号和S的字符类,该字符类与空白字符不匹配。S还匹配逗号和),因此可以缩短为仅S+。但这太匹配了。

例如,为了匹配您的值,您可以使用单词字符w,或者在字符类中添加您允许匹配的内容:

tagged.w+

Regex演示

这将匹配

  • tagged.匹配标记
  • w+匹配1个以上单词字符

Regex演示

最终模式:标记。[^\W\s]+(您可以在网站上看到进一步的解释(

因此如下:

  • '标记。':匹配以标记的任何字符串
  • [^]:这与片场出现的NOT单个字符相匹配
  • [^\W\s]:匹配非单词或空白的单个字符
  • +:量词贪婪,匹配集合的一次或无限次

最新更新