如何检查一个单词是否在字符串的末尾?
本文关键字:字符串 是否 一个 何检查 检查 单词 | 更新日期: 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) .*)";
注意字符串前的@避免了转义反斜杠的需要。