Я играл с этим регулярным выражением в Java для возрастов и не может заставить его работать:Java Regex заменить все не заменяя все слова
(?:^|)(?:the|and|at|in|or|on|off|all|beside|under|over|next)(?: |$)
Следующие:
pattern.matcher("the cat in the hat").replaceAll(" ")
дает me cat the hat
. Другой пример ввода - the cat in of the next hat
, который дает мне cat of next hat
.
Есть ли способ сделать эту работу по замене регулярных выражений без необходимости разбивать их на несколько отдельных регулярных выражений для каждого слова и пытаться заменить строку повторно?
Вам также могут потребоваться сопоставляемые группы: '(\ b (?: the | and | at | in | or | on | off | all | near | under | over | next) \ b) ' – frhd
@frhd Лучшим решением было бы просто заменить группу, не захватывающую захват, : '\ b (the | и | at | in | или | on | off | all | рядом | under | over | next) \ b' – sp00m
@ sp00m yep, этот ответ должен быть обновлен с вашим исправлением. – frhd