Я использую Google Big Query sql строковую функцию REGEXP_CONTAINS(value, regexp)
.
Попытка написать регулярное выражение для функции, возвращающей false, если какие-либо слова в определенном строковом поле не начинаются с +.
Или, в качестве альтернативы, true, если все слова в строковом поле начинаются с +.
Например, "+ test + list + of + words" пройдет. '+ список проверок + из + слов' потерпит неудачу.
(Можно предположить, что слова содержат только буквы c, отличные от начального +).
Я написал это регулярное выражение: ^(\+\w+\s?)+$
, которое работает на основе приведенных выше строк тестирования и нескольких вариантов. Насколько я понимаю, это означает, что вся строка должна состоять из повторяющегося шаблона:
- Одиночный '+'
- С последующим любым числом alphanumeri c
- С последующим необязательным пробелом (необязательно, так как в последнем слове нет пробела после него)
Мне интересно узнать, можно ли его улучшить, чтобы сделать его более устойчивым, например есть что-то очевидное, что я упустил, что может обнаружить более опытный регулярный выражатель, который может привести к его провалу.