Я бы, наверное, использовал регулярное выражение:
username=([a-zA-Z0-9\[\]]+) password
Или что-то подобное. Примечания относительно этого:
- Если убрать скобки, вы получите буквальную скобку.
- Пределы
a-zA-Z0-9
соответствуют буквенно-цифровым символам (в соответствии с вашим примером, который был буквенно-цифровым). Так что это будет соответствовать любому буквенно-цифровому символу или скобкам.
- Модификатор
+
гарантирует, что вы сопоставите хотя бы с одним символом . *
( Kleene star ) разрешит ноль повторений, что означает, что вы допустите пустую строку в качестве действительного имени пользователя.
- Я не знаю, разрешает ли RegexKitLite классы POSIX. Если это так, вы можете использовать
[:alnum:]
вместо a-zA-Z0-9
. Тот, который я дал выше, должен работать, если это не так.
В качестве альтернативы я бы запретил использование скобок в именах пользователей. Они на самом деле не нужны, ИМО.