Игнорирование чувствительности к регистру в строке. Содержит: удобное руководство

Манипулирование строками — распространенная задача в программировании, и часто мы сталкиваемся с необходимостью выполнять поиск внутри строк без учета регистра. Хотя традиционный метод String.Contains во многих языках программирования по умолчанию чувствителен к регистру, существует несколько способов сделать его нечувствительным к регистру. В этой статье блога мы рассмотрим различные методы поиска строк без учета регистра с использованием популярных языков программирования, таких как C#, Python, JavaScript и Java.

Метод 1: преобразование строк в нижний или верхний регистр
Один простой подход заключается в преобразовании и строки поиска, и целевой строки в нижний или верхний регистр, а затем выполнения поиска. Это гарантирует, что различия в регистре игнорируются. Давайте посмотрим, как это можно сделать на разных языках:

Пример C#:

string target = "Hello World";
string search = "world";
bool contains = target.ToLower().Contains(search.ToLower());

Пример Python:

target = "Hello World"
search = "world"
contains = search.lower() in target.lower()

Пример JavaScript:

let target = "Hello World";
let search = "world";
let contains = target.toLowerCase().includes(search.toLowerCase());

Пример Java:

String target = "Hello World";
String search = "world";
boolean contains = target.toLowerCase().contains(search.toLowerCase());

Метод 2: использование регулярных выражений (регулярных выражений)
Регулярные выражения предоставляют мощные возможности сопоставления с образцом, включая сопоставление без учета регистра. Вот как можно использовать регулярное выражение для поиска без учета регистра:

Пример C#:

string target = "Hello World";
string search = "world";
bool contains = Regex.IsMatch(target, search, RegexOptions.IgnoreCase);

Пример Python:

import re
target = "Hello World"
search = "world"
contains = re.search(search, target, re.IGNORECASE) is not None

Пример JavaScript:

let target = "Hello World";
let search = "world";
let regex = new RegExp(search, "i");
let contains = regex.test(target);

Пример Java:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
String target = "Hello World";
String search = "world";
Pattern pattern = Pattern.compile(search, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(target);
boolean contains = matcher.find();

В этой статье мы рассмотрели два распространенных метода, позволяющих сделать String.Contains нечувствительным к регистру. Преобразуя строки в нижний или верхний регистр или используя регулярные выражения с флагами без учета регистра, мы можем легко выполнять поиск без учета регистра. В зависимости от языка программирования, который вы используете, выберите метод, который лучше всего соответствует вашим потребностям. Теперь вы можете сэкономить время и усилия, выполняя поиск строк в коде без учета регистра!