Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Kiểm tra chuỗi chứa từ khóa trong C#

Kiểm tra chuỗi chứa từ/substring: Contains (exact), IndexOf (vị trí), Regex (pattern), StartsWith/EndsWith.

Ví dụ minh họa

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string s = "Together we can do so much!";
        
        // 1. Contains - exact substring
        Console.WriteLine($"Contains('much'): {s.Contains("much")}"); // True
        Console.WriteLine($"Contains('Much'): {s.Contains("Much")}"); // False (case-sensitive)
        
        // 2. IndexOf - vị trí
        int idx = s.IndexOf("much");
        Console.WriteLine($"IndexOf('much'): {idx}"); // 22
        Console.WriteLine($"IndexOf('Much', StringComparison.OrdinalIgnoreCase): {s.IndexOf("Much", StringComparison.OrdinalIgnoreCase)}");
        
        // 3. StartsWith / EndsWith
        Console.WriteLine($"StartsWith('Together'): {s.StartsWith("Together")}"); // True
        Console.WriteLine($"EndsWith('much!'): {s.EndsWith("much!")}"); // True
        
        // 4. Regex - pattern matching
        bool hasWordMuch = Regex.IsMatch(s, @"\bmuch\b"); // Word boundary
        Console.WriteLine($"Regex whole word 'much': {hasWordMuch}"); // True
        
        bool hasWordDo = Regex.IsMatch(s, @"\bdo\b");
        Console.WriteLine($"Regex whole word 'do': {hasWordDo}"); // True
        
        // 5. Case-insensitive Contains (.NET Core 2.0+ / .NET 5+)
        Console.WriteLine($"\nCase-insensitive:");
        Console.WriteLine($"Contains('MUCH', IgnoreCase): {s.Contains("MUCH", StringComparison.OrdinalIgnoreCase)}");
    }
}

Kết quả đầu ra

Contains('much'): True
Contains('Much'): False
IndexOf('much'): 22
IndexOf('Much', StringComparison.OrdinalIgnoreCase): 22
StartsWith('Together'): True
EndsWith('much!'): True
Regex whole word 'much': True
Regex whole word 'do': True

Case-insensitive:
Contains('MUCH', IgnoreCase): True

Lưu ý: Contains mặc định case-sensitive. Dùng StringComparison.OrdinalIgnoreCase cho case-insensitive. Regex.IsMatch với \b tìm từ nguyên vẹn (không khớp "much" trong "muchmore").