如何检查单词是否在字符串的末尾?

时间:2016-06-24 23:34:26

标签: c# regex

我今天学习了正则表达式并快速表达了。

([\s]+\(?fe?a?t(?:uring)?\.?[\s]*)

这匹配'特色'歌曲文件名的一部分。

e.g。

艺术家 - 第二艺术家的头衔

艺术家 - Title ft 2ndArtist

艺术家 - 标题专长。 2ndArtist

我可以在表达式中添加什么来阻止它匹配文件名,例如:

艺术家 - 我有冷酷的壮举

2 个答案:

答案 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) .*)";

注意字符串前的@避免了转义反斜杠的需要。