我有以下字符串:
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]:匹配非单词或空白的单个字符
- +:量词贪婪,匹配集合的一次或无限次