我今天学习了正则表达式并快速表达了。
([\s]+\(?fe?a?t(?:uring)?\.?[\s]*)
这匹配'特色'歌曲文件名的一部分。
e.g。
艺术家 - 第二艺术家的头衔
或
艺术家 - Title ft 2ndArtist
或
艺术家 - 标题专长。 2ndArtist
我可以在表达式中添加什么来阻止它匹配文件名,例如:
艺术家 - 我有冷酷的壮举
答案 0 :(得分:0)
为此,我最好使用the spray-caching docs方法。您可以使用Trim()
方法删除所有空格:
bool result = myString.Trim().EndsWith(”Artist”);
答案 1 :(得分:0)
你可以锚定'你的模式到了行的末尾,但你必须小心使用像锚之类的。*之前的通配符匹配。
另一种看待它的方式,你做了什么'想要匹配的是'特色'在中间。所以字符,单个空格,以及单个空格,然后是一些字符。所以我会像这样构建我的正则表达式:
var pattern = @"(.*) (ft\.?|feat\.?|featuring) (.*)";
这将匹配分为3个部分,或仅用于整个匹配:
var pattern = @"(.* (?:ft\.?|feat\.?|featuring) .*)";
注意字符串前的@避免了转义反斜杠的需要。