Итак, я знаю, как найти строку с указанной длиной и как найти строку с указанной буквой. Но как я могу найти строку, которая соответствует обоим условиям?
Например, я хочу найти строку из 4 букв, которая имеет букву «g».
Что я сделал: \b[A-Za-z].[Gg][A-Za-z].\b
это регулярное выражение соответствует любому слову, имеющему букву «g». Так что теперь мне нужно ограничить длину, но когда я пытаюсь \b([A-Za-z].[Gg][A-Za-z].){4}\b
он неКак найти строку с указанной длиной, которая указала букву?
ответ
Чтобы соответствовать только ASCII-буквенные последовательности с длиной 4, содержащего конкретное письмо, вы можете использовать
\b(?=\w*[Gg])[a-zA-Z]{4}\b
ВИДЕТЬ regex demo
регулярное выражение гн akdown:
\b
- граница слова (нам необходимо следующее письмо, чтобы быть символом слова:[a-zA-Z0-9_]
, но мы будем ограничивать его[a-zA-Z]
с последующим рисунком потребляющего)(?=\w*[Gg])
- положительный предпросмотр, что убеждается есть по крайней мере одинg
илиG
в слове (\w*
соответствует 0 или более алфавитно-цифровых символов)[a-zA-Z]{4}
- 4 ASCII буквы\b
- конечные границы слова
Спасибо! Я буду использовать слегка модифицированное регулярное выражение '\ b (? = [A-zA-Z] * [Gg]) [a-zA-Z] {4} \ b' –
Кажется, что лучший способ проверить это в lookahead заключается в использовании принципа контраста. Я предпочел бы предложить '\ b (? = [A-fh-zA-FH-Z] * [Gg]) [a-zA-Z] {4} \ b'. Если вы можете использовать модификаторы, используйте '(? I) \ b (? = [A-FH-Z] * [G]) [AZ] {4} \ b' или'/\ b (? = [A-FH -Z] * [G]) [AZ] {4} \ b/i' (понятия не имею, так как вы не указали язык). –
Уже ответить here на @Alan Мур
Вы просто должны adapt:
(?<!\S)(?=[a-zA-Z]{4}(?!\S))\S*[gG]\S*
(?<!\S)
соответствует позиция, которой не предшествует символ без пробелов .
(?=[a-zA-Z]{4}(?!\S))
далее утверждает, что позиция , за которой следует ровно 4 буквы.После того, как lookarounds удовлетворены,
\S*[gG]\S*
идет вперед и потребляет строка, принимать, по меньшей мере, один из символов г или G.
Обратите внимание, что это решение может быть слишком «жадным» для требований OP, поскольку оно соответствует любым небездельным последовательностям указанной длины и имеет некоторый символ внутри. –
- 1. Найти запись, которая не указала запись с определенным идентификатором
- 2. Разбор строки с длиной, указанной в строке
- 3. Преобразование числа в строку с указанной длиной в C++
- 4. Как отделить строку с неизвестной длиной?
- 5. найти строку, которая была названа
- 6. Найти строку с определенной длиной VBA
- 7. Класс Iterator с указанной длиной шагов
- 8. Необходимо найти самую повторяющуюся длину, чтобы найти строку, которая не совпадает с длиной
- 9. Как найти первую строку в текстовом файле с определенной длиной?
- 10. Как создать таблицу mySQL с указанной длиной поля?
- 11. C - Как читать строку с неизвестной длиной
- 12. Переменная среза из указанной буквы в указанную букву в строке, которая изменяется по длине
- 13. Как найти букву USB-накопителя?
- 14. Как разбить строку с указанной «» в VBA
- 15. Как найти букву USB-драйвера?
- 16. php forum выводит строку текста, как найти источник указанной строки?
- 17. Python: Лита кортежей и с указанной длиной ИНТ
- 18. Как найти индекс указанной строки в массиве?
- 19. Создание нового массива в jQuery с указанной длиной
- 20. NSString с длиной
- 21. Могу ли я создать строку или вектор C++ с указанной длиной, но не инициализировать?
- 22. Я хочу скопировать строку из элемента в буфер с указанной длиной
- 23. Номер в строку с фиксированной длиной
- 24. Найти букву тома раздела EFI
- 25. HashSet Java найти слова в соответствии с длиной
- 26. Как найти строку, которая начинается с точного слова
- 27. найти количество строк с длиной более 5
- 28. Как зашифровать строку до строки с ограниченной длиной в Android
- 29. Найти последнюю вставленную строку, которая соответствует запросу
- 30. Найти день с указанной даты в python
Возможный дубликат [как регулярное выражение соответствует строке с фиксированной длиной и по крайней мере цифрой в ней] (http://stackoverflow.com/questions/6991212/how-do-i-regex-match- a-string-with-fixed-length-and-at-less-a-digit-in-it) – naurel
Считаете ли вы случаи, когда подстрока содержит только буквы ASCII? Если да, решение в SO-сообщении, предложенное naurel, не соответствует вашим требованиям. –
Я, возможно, спешил с моим ответом. В предложении «azeGaze» он должен соответствовать: «azeG» и «zeGa» и «zGaz» и «Gaze»? Или нет, так как вы ищете слово (т. Е. Разделенное пробелами), просто «azeG» или просто «Gaze»? – naurel