我试图通过C#读出脚本并确定它们是否包含某些单词,但这些单词应该与相同,而不是仅包含我正在寻找的内容。有没有办法使用contains
- 函数,单个单词,并检查它是否与确切的单词相同?
如何确定包含和是否与搜索词相同?
目前我正在使用以下脚本:
// GetScriptAssetsOfType<MonoBehaviour>() Returns all monobehaviour scripts as text
foreach (MonoScript m in GetScriptAssetsOfType<MonoBehaviour>())
{
if (m.text.Contains("Material"))
{
// Identical check?
}
}
答案 0 :(得分:14)
正则表达式怎么样?
bool contains = Regex.IsMatch(m.text, @"\bMaterial\b");
答案 1 :(得分:0)
包含将搜索您作为参数放置的确切单词 在小程序中将此作为示例进行检查
string a = "This is a test";
string b = "This is a TEST";
Console.WriteLine(a.Contains("test"));
Console.WriteLine(b.Contains("test"));
希望我能理解你的问题
答案 2 :(得分:0)
在里面再使用另一张支票。我希望我理解你的问题。
// GetScriptAssetsOfType<MonoBehaviour>() Returns all monobehaviour scripts as text
foreach (MonoScript m in GetScriptAssetsOfType<MonoBehaviour>())
{
if (m.text.Contains("Material"))
{
if(m.text == "Material")
{
//Do Something
}
}
}
答案 3 :(得分:0)
只使用扩展方法制作Regex Handy
扩展类
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication11
{
public static class Extension
{
public static Match RegexMatch(this string input, string pattern, RegexOptions regexOptions = RegexOptions.IgnoreCase)
{
return Regex.Match(input, pattern, regexOptions);
}
}
}
并使用上述课程。
using System.Text;
namespace ConsoleApplication11
{
class Program
{
static void Main(string[] args)
{
bool isMatch = "this is text ".RegexMatch(@"\bis\b").Success;
}
}
}
如果不熟悉http://www.codeproject.com/Articles/573095/A-Beginners-Tutorial-on-Extension-Methods-Named-Pa
,请参阅扩展方法答案 4 :(得分:0)
所以你正在寻找正则表达而不是包含,现在我理解你的问题
string a = "This is a test for you";
string b = "This is a testForYou";
string c = "test This is a for you";
string d = "for you is this test.";
string e = "for you is this test, and works?";
var regexp = new Regex(@"(\stest[\s,\.])|(^test[\s,\.])");
Console.WriteLine(regexp.Match(a).Success);
Console.WriteLine(regexp.Match(b).Success);
Console.WriteLine(regexp.Match(c).Success);
Console.WriteLine(regexp.Match(d).Success);
Console.WriteLine(regexp.Match(e).Success);