То, что вы ищете, это регулярные выражения
То, что вам нужно сделать, это:
import re
# don't actually use the **, i'm putting those there for emphasis.
s = re.search(r"(?P**pattern goes here**)(?P**pattern goes here**, **name of string goes here**)
, тогда вы можете взять группу и повернуть обратно в строку, выполнив
string = str(s.group('group_name'))
Я оставлю вас в логике поиска совпадений, если вам нужна помощь, просто оставьте еще один комментарий:)
Причина, по которой Visual Studio добавляет «TextBox1», когда вы добавляете его на страницу, заключается в том, что Microsoft не знает, как вы собираетесь его использовать. Назвать его «Control1» было бы слишком запутанно, потому что это могло быть любое количество элементов управления.
Microsoft предоставляет общие рекомендации по соглашениям об именовании объектно-ориентированных приложений, но не конкретно для именования элементов управления пользовательского интерфейса. Поскольку элементы управления пользовательского интерфейса в конечном итоге являются переменными, используемыми в коде, они должны следовать тому же соглашению, что и любые другие переменные - без префикса венгерской нотации.
Основные причины:
Примеры
Я нахожу, что большую часть времени забочусь о том, для какой информации управление, а не какой тип управления в настоящее время используется для собирания тех данных, таким образом, я предпочитаю тип информации перед типом управления, таким образом, я могу найти его в отсортированном списке в IDE:
VS:
Не уверенный в стандартах должностного лица Microsoft, но это - то, что я сделал посредством своей карьеры разработки.
я обычно сокращаю тип управления перед название того, что делает управление. Я сохраняю нижний регистр сокращения и имя управления CamelCase.
, Например, texbox для имени пользователя становится tbUserName
, Вот список стандартных сокращений, которые я использую:
Abbr - Control
btn - Button
cb - CheckBox
cbl - CheckBoxList
dd - DropDownList
gv - GridView
hl - Hyperlink
img - Image
ib - ImageButton
lbl - Label
lbtn - LinkButton
lb - ListBox
lit - Literal
pnl - Panel
ph - PlaceHolder
rb - RadioButton
rbl - RadioButtonList
txt - Textbox
Мы также используем номер 2, однако я не полностью убежден, что это - хороший подход. Это - Венгерская запись от "плохого" вида, означая, что префиксы сигнализируют о типе (синтаксис) а не цель (семантика). Проблема с этим состоит в том, что, что запускается, поскольку TextBox мог бы позже стать DropDown и затем RadioButtonGroup, и необходимо будет переименовать управление каждый раз.
Я don’t думают there’s право или неправильно отвечают здесь, независимо от того, что Вы решаете, я думаю, что самый важный аспект должен только быть последовательным, когда это на самом деле приходит к кодированию.
Едва ли уверенный в любых инструкциях, я подозреваю, что существует, но я всегда использую номер 2 также!
Если бы Вы смотрите на него из кода maintainance точка зрения, какова была бы лучшая нотация для взгляда на то, после того, как Вы сделали код 2 года назад. Хотя мы пытаемся удостовериться, чтобы формы не имели слишком многих полей на них, все мы знаем, что это иногда происходит. Если бы мы использовали Венгерскую нотацию путем предварительного ожидания типа управления, я думаю, что было бы легче видеть, куда то значение прибывает из вместо того, чтобы иметь необходимость понять это в конечном счете, имя переменной не делает это очевидным. Если бы Вы используете какой-либо тип инструмента Refactoring, затем меняющего имя управления, изменил бы код автоматически, таким образом, сокращение контроля изменений arguement.
они действительно просто основаны на Ваших предпочтениях, но да, опция 2, как описано является менее подробной и указывает Вам на тип управления даже, прежде чем его имя покажут.
Я боролся с этой проблемой также. Я раньше использовал "венгерский префикс стиля".
Теперь я проявляю другой подход, я пытаюсь рассматривать средства управления как частные поля от моего класса. Я не делаю пред - постфикса мои частные поля с их типом, итак, почему я должен сделать это к TextBox?
Поэтому, что раньше было:
var newCustomer = new Customer();
newCustomer.Name = txtName.Value;
newCustomer.Address = txtAddress.Value;
newCustomer.City = txtCity.Value;
newCustomer.HasEnoughMoney = cbHasMoney.Selected;
Становится:
var newCustomer = new Customer();
newCustomer.Name = name.Value;
newCustomer.Address = address.Value;
newCustomer.City = city.Value;
newCustomer.HasEnoughMoney = hasMoney.Selected;
Честно говоря, я не мог заботиться меньше, если управление "именем" является текстовым полем или что еще, я просто хочу, это - значение.
И если не достаточно ясно, думаю ли Ваш разговор о Вашем управлении или о другом поле/переменной, я Вы или должен пересмотреть название того поля/переменной или функцию Вас класс (значение его мог бы быть немного к большому?).
Я склонен идти с типом управления как префикс и название управления впоследствии, но я всегда CamelCase так в Вашем примере для различных типов средств управления Вы могли бы иметь..
Для intellisense обосновывает, что я также всегда полностью определяю название управления, таким образом, я не сделал бы ни одного из следующих...
, Но в конечном счете вниз к персональному предпочтению
Почти все используют префиксы венгерского стиля (опция 2). Семантическое именование менее полезно, потому что "Firstname" является на самом деле texbox. Текстовое значение, не само текстовое поле.
Я не уверен в инструкциях относительно ASP.NET, но в книжном Руководстве по проектированию Платформы от Microsoft, существует несколько инструкций лучшей практики об именовании участников класса. Так как Средства управления ASP.NET в большинстве случаев приводят к защищенному полю соответствующего типа, я полагаю, что эти рекомендации по именованию касаются средств управления ASP.NET также. На самом деле Анализ кода не дифференцируется на полях ссылки Управления и других полях.
Эти инструкции рекомендуют использовать схему именования, которая подразумевает логическое использование, а не описательный типом вариант. Существует несколько причин этого. Префикс, подразумевает тип разработчику, который не мог бы быть корректным из-за более поздних изменений. Это добавляет дополнительный шаг в коде maintainence. При изменении Кнопочного управления в управление LinkButton, имя также должно измениться для исправления префикса.
По этой причине я назвал бы управление FirstNameEdit и т.д.
Две причины, почему я предпочитаю опцию 1:
сказавший, что я считаю изменение на FirstNameCtrl по причине csgero указанным об изменяющихся типах управления. Итак, почему беспокойство с любым постфиксом или префиксом, для уменьшения/удаления возможности конфликтов с asp/победой формирует свойства.
Microsoft действительно обеспечивает приблизительно руководство здесь.
при перетаскивании управления на веб-форму, Вы получаете что-то как "TextBox1" автоматически. Это - IDE, говоря Вам, что необходимо измениться "1" часть для определенных потребностей.
В этом случае, "TextBoxFirstName" походит на способ пойти.