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

本文关键字:字符串 是否 一个 何检查 检查 单词 | 更新日期: 2023-09-27 17:51:18

我今天学了Regex,做了一个快速的表达式。

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

这与歌曲文件名中的' featured '部分相匹配。

Artist - Title with 2ndArtist

Artist - Title - ft2nartist

艺人-称号壮举。2 ndartist

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

Artist - I have cold feat

?

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

我最好使用字符串。用于此目的的EndsWith方法。您可以使用Trim()方法删除所有空白:

bool result = myString.Trim().EndsWith(”Artist”);

你可以将你的模式'锚定'到行尾,但是你必须小心在锚前使用通配符匹配,如。*。

另一种看待它的方式是,你想要匹配的是中间的"feature"。字符,一个空格,' feature ',一个空格,然后是一些字符。所以我将像这样构建我的正则表达式:

var pattern = @"(.*) (ft'.?|feat'.?|featuring) (.*)";

这将把匹配分解为3个部分,或者仅用于整个匹配:

var pattern = @"(.* (?:ft'.?|feat'.?|featuring) .*)";

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