У меня есть несколько строковых строк в разных форматах. Я хочу найти шаблон с использованием регулярного выражения, чтобы соответствовать определенным строкам. Я пытался до некоторой степени понять это сам, используя это: \b([A-Z0-9]{2,})\b. Однако мне не удалось найти правильный шаблон, который соответствовал бы только строкам 3, 6 и 8. Спасибо.

// DONE: return Test; TESTER MessageBoxButtons.OK, .GetConnectionString(); TOURNAMENT TRACKER // Create TEST 4 ME

-1
Gabriel Marius Popescu 16 Июн 2017 в 11:24
Эти строки такие особенные, потому что они состоят только из прописных букв, цифр и пробелов? Или есть другие требования (хотя бы одно слово, только разделители одним пробелом и т. Д.)?
 – 
Sebastian Proske
16 Июн 2017 в 11:27
Добавить нечувствительность к регистру. На каком языке, кстати
 – 
Mr Mystery Guest
16 Июн 2017 в 11:27
Он будет соответствовать прописным буквам, цифрам, как сказал @SebastianProske. Пожалуйста, уточните свой шаблон соответствия, я рекомендую вам попробовать этот сайт regexr.com
 – 
Ar Aui
16 Июн 2017 в 11:30
Сейчас будет работать простой ^[A-Z0-9 ]+$. Или ^(?=.*\b[A-Z0-9]{2,}\b)[A-Z0-9 ]+$. Или ^[A-Z0-9 ]*\b[A-Z0-9]{2,}\b[A-Z0-9 ]*$
 – 
Wiktor Stribiżew
16 Июн 2017 в 11:33
@MalteHartwig: Нет никаких требований, поэтому .* также работает или не работает.
 – 
Wiktor Stribiżew
16 Июн 2017 в 11:37

2 ответа

Я предполагаю, что ваше решение также соответствует первой и четвертой строке. Если вы хотите исключить строки с символами, отличными от указанных, вы можете просмотреть всю строку вместо проверки отдельных слов:

^[0-9A-Z]+(\s[0-9A-Z]+)*$

Он будет соответствовать строкам, состоящим из слов, разделенных пробелами, которые содержат цифры или заглавные буквы.

1
Malte Hartwig 16 Июн 2017 в 14:49

Если вы проверите всю строку, вы можете использовать это

^[A-Z0-9 ]+$

Предполагая, что установлена ​​чувствительность к регистру, это будет соответствовать только символам верхнего регистра, числам и пробелам от начала до конца строки.

Смотрите демо здесь

-1
garyh 16 Июн 2017 в 12:22
Обратите внимание, что это также будет соответствовать A1B2C3. Хотя не уверен, вызывает ли это беспокойство.
 – 
Malte Hartwig
16 Июн 2017 в 12:25
Верно, но нам понадобится больше примеров из OP, чтобы исключить другие ситуации.
 – 
garyh
16 Июн 2017 в 12:31
Да, просто хотел указать на это, чтобы не было сюрпризов при его использовании. Я также до сих пор не уверен, для чего нужен {2,} в исходном регулярном выражении ...
 – 
Malte Hartwig
16 Июн 2017 в 12:34
Я думаю, что это была попытка исключить прописные буквы, за которыми следует строчная, но она также исключает все строки в верхнем регистре, которые начинаются с символа + пробел, например A TESTER
 – 
garyh
16 Июн 2017 в 12:42