我在使用正则表达式来匹配一个精确的字符串(并且只有该字符串,不得包含前缀或后缀)时才会遇到一些问题。
我已经查看了与之相比较的每个“重复”,并且没有一个解决方案似乎适用于我正在努力实现的问题。如果它确实是重复的,我很乐意看到它!
要匹配的词组: Metallica - 木偶大师
示例文字:
Metallica - Master Of Puppets (instrumental)
Metallica - Master Of Puppets
- Metallica - Master Of Puppets
我尝试了几种不同的方法。
其中任何一个都不匹配正确的(第二个选项,粗体)字符串。我已经把我昨晚的空闲时间用在这个小字符串上,而不是编写一个我一直在努力的新应用程序(我真的很讨厌放弃),而且,在这一点上,出于想法,例子和耐心。尽管如此,我真的想深入了解这个看似简单的正则表达式需要完成的事情,无论是应用程序还是我的心理健康(我讨厌正则表达式,但是喜欢挑战)。
注意:我需要在Regex中完成此操作(不是grep,而不是java等)。很抱歉抛出这样一个看似琐碎的问题,但我在编程世界中的15个月只能让我到目前为止。期待解决方案,谢谢!5
答案 0 :(得分:1)
我相信你的第一种方法是正确的(与@Dmitry Egorov达成协议),尽管你可能错过了多行标志。这样设置就可以在字符串或文件的每一行的开头和结尾设置^
和$
。
在PHP / Js中你会想要使用
/^Metallica - Master Of Puppets$/gm
g
标志为'global'并查找所有实例,m
标志是前面提到的多行标志。
其他语言将具有类似的标志或多行支持选项。