0

我有以下字符串:

tagged.big) AND tagged.medium

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

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

tagged\.[\),\S]+

从我期望的示例字符串中:

tagged.big
tagged.medium

但现在它返回:

tagged.big)
tagged.medium

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

4

2 回答 2

2

在您使用的正则表达式中,tagged\.[\),\S]+它包含一个带有, 逗号的字符类,并且不匹配空白字符。也匹配逗号,因此可以缩短为 just 。但这会匹配太多。)\S\S)\S+

为了匹配您的值,您可以例如使用单词字符 \w或将您允许匹配的字符添加到字符类中:

tagged\.\w+

正则表达式演示

那将匹配

  • tagged\.匹配标记。
  • \w+匹配 1+ 个单词字符

正则表达式演示

于 2018-11-10T18:25:28.977 回答
1

最终模式:tagged.[^\W\s]+(你可以在网站上看到进一步的解释)

所以如下:

  • “标记。” : 匹配任何以tagged开头的字符串。
  • [^ ]:这匹配未出现在集合中的单个字符
  • [^\W\s] :匹配不是非单词或空格的单个字符
  • +:量词贪婪,匹配集合的一次或无限次。
于 2018-11-10T18:03:44.637 回答