Да, последовательность символов или классов символов используется по умолчанию и имеет более высокий приоритет, чем оператор ИЛИ |
. Поэтому, если у вас нет ничего впереди или позади вашей последовательности (ясно отображаемой в ваших случаях true|false
), тогда вам это не нужно.
Однако, если вы хотите использовать, например, this is true|false
для "this is true"
или "this is false"
тогда приоритет не будет установлен для "this is false"
, и вам необходимо сгруппировать true|false
, например, используя не захватывающую группу , например, this is (?:true|false)
.
Я не вижу проблем с вашими выражениями, когда вы удалили некоторые скобки. Однако, если вы хотите проверить их, просто поместите их в (онлайн) средство проверки, которое показывает приоритет (например, this ) и проверьте, изменяется ли полученное «объяснение». Надеемся, что различные плагины IDE для тестирования регулярных выражений также обеспечат вам аналогичное представление дерева .
Остерегайтесь того, что вы иногда используете сопоставители границ (^
и $
), а иногда и вы не. Я ожидаю, что они будут использоваться или не использоваться.