我想知道如何在标签中引用句子中的一个单词。例如,我有以下内容:
label1.text = "books pencil pen ruler";
我想表达的是:"如果label1.text中包含单词"pen",则执行某些操作":
if (label1.text CONTAINS THE WORD "pen")
{
// do something
}
我该怎么做呢?
使用正则表达式的单词边界:
if (Regex.IsMatch(label1.text, @"\bpen\b"))
// do something
比起检查IndexOf或Splitting,正则表达式更加健壮。例如,简单的IndexOf("pen")
会匹配到"open"
这个词。如果尝试通过将其改为IndexOf(" pen ")
来解决这个问题,则无法匹配"pen other words"
这个短语。如果使用Split(' ')
,它将无法匹配"This sentence ends in pen."
。而正则表达式的单词边界可以像你所期望的那样匹配所有这些情况。你可以根据更多的单词边界字符进行切割,但是让正则表达式类的编写者为您完成工作要比自己理解单词边界容易得多。string sentence = "books pencil pen ruler";
string[] words = sentence.Split(' ');
bool hasFox = words.Contains("pen");
尝试 -
if(label1.text.contains(" pen "))
{
//do something
}
pen
前后添加空格。如果期望笔词在单词之间而不是字符串的开头或结尾。
if(label1.text.IndexOf(" pen ") != -1 )
{
//do something
}
编辑
经过讨论,我发现正则表达式可能是更好的选择。
if (Regex.IsMatch(label1.Text, @"\bpen\b"))
{
//do something
}
open
:-) - Eric J.open
与 || label1.text.IndexOf("pen ")
匹配。 - Eric J.string s1 = "books pencil pen ruler";
string s2 = "pen";
if(s1.Contains(s2) && s2 != "")
{
// do something
}
这应该会有所帮助
string data = label1.Text;
string word = "Pen";
if(!string.IsNullOrEmpty(data))
if(data.Contains(word))
{
// do work here
}