Я хочу, чтобы регулярное выражение совпадало со словами, которые разделены двойными или более пробелами, например,
ABC DE FGHIJ KLM NO P QRST
Обратите внимание на двойной или более пробелов между алфавитами.Написание регулярных выражений для такой проблемы легко, так как мне нужны только первые 4 слова, так как мы можем искать слово, используя \S+
или \S+?
Однако, для моей проблемы, только 1 пробел МОЖЕТвстречаются в слове, например
AB C DE FG HIJ KLM NO P QRST
Здесь AB C - слово, а FG HIJ - тоже слово.Короче говоря, мы хотим выделить символы, которые заключены в двойные или более пробелы, я попытался использовать это регулярное выражение,
.+? +.+? +.+? +.+? +
, оно очень быстро совпадает, но для строк, которые ему не соответствуют, требуется слишком много времени,(В качестве примера здесь приведены 4 совпадения, на практике мне нужно сопоставлять больше).
Мне нужно лучшее регулярное выражение для достижения этой цели, чтобы можно было избежать обратного отслеживания.[^ ]*
- это регулярное выражение, которое будет соответствовать, пока не встретится пробел.Разве мы не можем указать отрицательный набор символов, в котором мы продолжаем сопоставление в случае единственного пробела и прерывания, когда встречаются 2?Я пытался использовать позитивный взгляд, но с треском провалился.
Буду очень признателен за вашу помощь.Заранее спасибо.
Саад