#javascript #regex #word
#javascript #регулярное выражение #word
Вопрос:
Я на 99% использую регулярное выражение для поиска слов, но не какие-либо итерации того, где это встречается в качестве подстроки.
т.е. Ищете джем или ВАРЕНЬЕ, но не джемПа или джем флоро
Это то, что у меня есть до сих пор:
bjams?d?b
Это работает со всеми комбинациями, с которыми я, вероятно, столкнусь, за исключением того, что я хотел бы, чтобы он также выполнял несколько итераций одной и той же строки без пробелов
jamjamjamjam
Могу ли я добавить это в регулярное выражение?
Комментарии:
1. Попробуйте:
b(?:jamh*d*) b
2. @anubhava не работает regex101.com/r/C05fsI/1
3. У меня сложилось впечатление, что OP хочет соответствовать
jamjamjamjam
4. @anubhava а? Я был почти уверен, что он имел в виду, что не хотел их сопоставлять. Возможно, вы правы.
5. @IslamElshobokshy — Извините, это была моя неправильная формулировка. Я намного лучше разбираюсь в картинках 🙂
Ответ №1:
Вы можете использовать это регулярное выражение с чередованием:
~b(?:(?:jam) |jamh*d*)b~i
Демонстрация регулярных выражений
Подробности регулярного выражения:
b
: Граница слова(?:(?:jam) |jamh*d*)
: Сопоставьте 1 соседниеjam
строки илиjam
, за которыми следует 0 пробелов и 0 цифрb
: Граница словаi
: режим для игнорирования регистра