Как использовать регулярное выражение для поиска буквы, не являющейся частью слова? Например, ищем букву И (без учета регистра): "Книга" = false, "Книга и тетрадь" = true, "1+1 И 2+2" = true, "Беги" = false.
Для поиска символа, который не является частью слова, можно использовать регулярное выражение \b\b. Для поиска буквы, не являющейся частью слова "И" (без учета регистра), можно использовать следующее регулярное выражение: \b[^иИ]\b. Пример использования в Python: ```python import re # Паттерн для поиска буквы "И" (без учета регистра), не являющейся частью слова pattern = r'\b[^иИ]\b' # Текст для поиска text1 = "Книга" text2 = "Книга и тетрадь" text3 = "1+1 И 2+2" text4 = "Беги" # Поиск по паттерну result1 = re.search(pattern, text1, re.IGNORECASE) result2 = re.search(pattern, text2, re.IGNORECASE) result3 = re.search(pattern, text3, re.IGNORECASE) result4 = re.search(pattern, text4, re.IGNORECASE) print(bool(result1)) # False print(bool(result2)) # True print(bool(result3)) # True print(bool(result4)) # False ```
К сожалению <code>\b</code> в JS для русского языка не применим. <br/> Придётся явно указывать буквы, считая что у нас нормальные слова (состоят только из русских букв). <br/> <br/> <pre><code class="javascript">const re = /(?<![а-яё])и(?![а-яё])/ig;
console.log(re.test('Книга')); // false
console.log(re.test('Книга и тетрадь')); // true</code></pre>
т.е. слева и справа от буквы должен быть пробел, либо знак препинания, либо начало, либо конец строки? В такой формулировке сам поймешь как сделать? <br/> <br/> p.s. еще есть \b - граница слова, любая буква \w тогда регулярка <code class="javascript">/\b\w\b/</code>