MSVS: где регулярное выражение ?
У меня есть код, который я пытаюсь сопоставить с регулярным выражением в MSVS 2008, но я не могу найти регулярное выражение для него. Возьмите классический пример:
colou?r
... это регулярное выражение, которое соответствует color
или colour
. Это не соответствует ни в MSVS. Ссылаясь на файл справки, я не могу найти ?
.
Это не будет иметь большого значения - его можно эмулировать чередованием:
colo(u|)r
Однако я получаю "Сгруппированное выражение отсутствует") ". ... что это ... нет. Как ни странно, MSVS имеет эти альтернативные группы (я не совсем уверен, почему ...) с фигурными скобками:
colo{u|}r
Что дает мне совершенно другую ошибку «Синтаксическая ошибка в шаблоне» ... которую я не вижу.
В основном, как мне сделать ?
? Мой фактический ввод не такой простой, как цвет / цвет, иначе я бы просто подделал его с помощью (color|colour)
. Полагаю, это может подделать, но это тупой способ.
Давайте попробуем чередование ...
Хорошо, я все еще не могу этого сделать, даже с чередованием. У меня есть два следующих регулярных выражения:
^[A-Z]+\t[0-9]+\t[^\t]+
^[A-Z]+\t[0-9]+\t[^\t]+\t[^\t]+
Эти два соответствуют двум наборам строк, которые по отдельности соответствуют моему тексту. (Первая соответствует части строк, соответствующей второй.)
Мой ввод - строки информации о валюте:
BZD 084 Belize dollar
CAD 124 Canadian dollar
CDF 976 Franc Congolais
CHE 947 WIR euro (complementary currency)
CHF 756 Swiss franc
CHW 948 WIR franc (complementary currency)
CLF 990 Unidad de Fomento (funds code)
(Например, есть вкладки между евро WIR и (дополнительная валюта), но они не всегда есть.)
По логике, из этого следует, что для объединения
^[A-Z]+\t[0-9]+\t[^\t]+
^[A-Z]+\t[0-9]+\t[^\t]+\t[^\t]+
.. вы получаете ...
^ [A-Z] + \ т [0-9] + \ т ([^ \ т] + | [^ \ т] + \ т [^ \ т] +)
... который как-то эквивалентен второму выражению в первом наборе.