2013-07-08 2 views
2

Я не очень опытен в регулярных выражениях.Python: помогите сделать regexp

И теперь я думаю, что это нужно для этой цели:

Я хочу, чтобы регулярное выражение, чтобы найти переменные, как 5c или c5 (только один вариант не оба) в строке. В будущей таблице может расти и я нужно найти ВАР как 25ac или ac25

Переменный всегда будет номер + буква (или две), это своего рода ячейки таблицы нумерации (как в Excel)

/[0-9]+[a-z]{1,2}/ 

что-то в этом роде? Может ли кто-нибудь мне помочь?

+6

Добро пожаловать на переполнение стека! Похоже, вы хотите, чтобы мы написали вам код. Хотя многие пользователи готовы создавать код для кодера, терпящего бедствие, они обычно помогают только тогда, когда плакат уже попытался решить проблему самостоятельно. Хорошим способом продемонстрировать это усилие является включение кода, который вы написали до сих пор, пример ввода (если он есть), ожидаемый вывод и вывод, который вы фактически получаете (вывод консоли, трассировки стека, ошибки компилятора - все, что угодно применимо). Чем больше деталей вы предоставляете, тем больше ответов вы получите. –

+0

исправить мой вопрос –

+0

Почему вы используете косые черты в своем регулярном выражении? Синтаксис регулярного выражения Python для поиска: 're.findall ('[0-9] + [a-z] {1,2}', str)' – Jerry

ответ

2

Вы хотите что-то вроде этого:

^(\d+[a-zA-Z]{1,2})|([a-zA-Z]{1,2}\d+)$ 

Чтобы разорвать этот вниз, ^ является начало строки/строки в то время как $ заканчивает строку/строки. Затем у вас есть группа захвата (то, что регулярное выражение захватывает в вашем матче), которое имеет цифровой символ, \d (так 0-9), 1 или более раз (что дается +), а затем 1: 2 (обозначается {1,2}) (символы [] содержат диапазоны символов для соответствия, которые в нашем случае представляют собой все алфавиты, прописные и строчные буквы), а затем знак или знак |, а затем тот же шаблон, но наоборот.

http://www.regex101.com/ - довольно полезный ресурс для игры с регулярными выражениями, а http://www.regular-expressions.info/tutorial.html - отличный сайт, показывающий вам все о регулярных выражениях.

1

Вот самое простое решение ...

(\d+\w+|\w+\d+) 
+0

'\ w' также соответствует цифрам, так что это будет соответствовать, например,' 25'. Он также соответствует 'abc123', и OP только хотел, чтобы он соответствовал двум буквенным символам – ydaetskcoR

Смежные вопросы