Регулярное выражение для определения серийного номера - PullRequest
0 голосов
/ 20 января 2010

Я знаю, что у SO много вопросов о помощи в регулярных выражениях, поэтому заранее прошу прощения за еще один.

Я никогда раньше не использовал регулярные выражения, и я искал в Интернете (и скачал программу, чтобы показать вам результаты вашего регулярного выражения), но я не могу сам разобраться в этом чертовом, что раздражает, потому что я знаю это действительно легко.

У меня много строк текста, взятых из CSV-файла. Большинство строк имеют формат:

Серийный номер, описание, статус

Мне нужно знать, какие строки содержат серийные номера. Серийные номера обычно имеют формат ABC001. Но иногда есть 4 буквы, иногда 4 цифры и т. Д. Поэтому я попытался сделать выражение, которое только что проверило, что первая цифра - это буква, а последняя цифра перед первой запятой - это число. Я знаю, что он не идеален, но вполне подходит для моих целей.

Я пытался ^ [A-Z] $ [0-9], так как думал, что «начинается с A-Z, заканчивается 0-9», но это не работает. Может кто-нибудь, пожалуйста, помогите мне, потому что это сводит меня с ума!

Я не знаю, в этом ли разница, но я использую C #.

Ответы [ 4 ]

2 голосов
/ 20 января 2010

мое предложение:

^[A-Za-z]{3,4}[0-9]{3,4}
0 голосов
/ 20 января 2010

Если вы хотите "начинается с A-Z, заканчивается 0-9", вы можете просто сделать [A-Z][A-Z0-9]+[0-9]. Ваше предыдущее регулярное выражение не работает, потому что ^ и $ ищут начало и конец строк.

0 голосов
/ 20 января 2010

Если вы не знакомы с регулярным выражением, почему бы просто не использовать обычные строковые операции с C #? Я имею в виду, что если кто-то предоставит решение (которое, вероятно, произойдет), вы, скорее всего, не сможете подтвердить, работает ли оно для всех ваших дел, или не сможете его скорректировать, если возникнет такая необходимость.

0 голосов
/ 20 января 2010

Начинается с буквы последней цифры до того, как первая запятая будет цифрой:

^[a-zA-Z][^,]*[0-9],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...