已关闭,该问题需要details or clarity,目前不接受回答。
**想要改进此问题?**通过editing this post添加详细信息并澄清问题。
1小时前关闭
Improve this question
使用以下字符串值:- Comet TV Hd (599|C07)
我只想得到-Comet TV Hd
我试过了-(\w+\s*\w+)\s
它工作正常的2个字,它获取彗星电视,我可以进一步修改它的工作3个字如下-(\w+\s*\w+\s*\w+)\s
但是我想要一个不依赖于单词数量的解决方案,我怎样才能改变这个表达式,使它在(599|C07)
之前捕获任意数量的单词呢
1条答案
按热度按时间3mpgtkmj1#
您可以使用以下正则表达式模式来匹配特定模式之前的任意数量的单词,例如
(599|C07)
:^(.+?)\s+\(.*
下面是正则表达式模式的分类:
^
行的开始。(.+?)
捕获组中任意数量的字符(非贪婪)。非贪婪+?
量词确保该组捕获尽可能少的字符,在后续模式的第一次出现时停止。\s+
匹配一个或多个空格字符。\(.*
匹配文字括号及其后面的任何内容。\(
被转义以匹配文字括号,.
匹配除换行符之外的任何字符,量词*
使其匹配零个或多个字符。此正则表达式模式将捕获在类似(599)的模式之前的任意数量的单词|C07)不管单词的数量。
You can experiment with it here.