25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 13. Символни низове 485<br />

Настоящата тема няма за цел да обясни как се работи с регулярни изрази<br />

в .NET Framework, тъй като това е голяма и сложна материя, а само да<br />

обърне внимание на читателя, че регулярните изрази съществуват и са<br />

много мощно средство за текстообработка. Който се интересува повече,<br />

може да потърси статии, книги и самоучители, от които да разучи как се<br />

конструират регулярните изрази, как се търсят съвпадения, как се прави<br />

валидация, как се правят замествания по шаблон и т.н. По-конкретно<br />

препоръчваме да посетите сайтовете http://www.regular-expressions.info/ и<br />

http://regexlib.com/. Повече информация за класовете, които .NET<br />

Framework предлага за работа с регулярни изрази и как точно се използват,<br />

може да бъде открита на адрес: http://msdn.microsoft.com/enus/library/system.text.regularexpressions.regex%28VS.100%29.aspx.<br />

Премахване на ненужни символи в началото и в<br />

края на низ<br />

Въвеждайки текст във файл или през конзолата, понякога се появяват<br />

"паразитни" празни места (white-space) в началото или в края на текста<br />

– някой друг интервал или табулация, които може да не се доловят на пръв<br />

поглед. Това може да не е съществено, но ако валидираме потребителски<br />

данни, би било проблем от гледна точка на проверка съдържанието на<br />

входната информация. За решаване на проблема на помощ идва методът<br />

Trim(). Той се грижи именно за премахването на паразитните празни места<br />

в началото или края на даден символен низ. Празните места могат да бъдат<br />

интервали, табулация, нови редове и др.<br />

Нека в променливата fileData сме прочели съдържанието на файл, в който<br />

е записано име на студент. Пишейки текста или преобръщайки го от един<br />

формат в друг, може да са се появили паразитни празни места и тогава<br />

променливата ще изглежда по подобен начин:<br />

string fileData = " \n\n Ivan Ivanov ";<br />

Ако изведем съдържанието на конзолата, ще получим 2 празни реда,<br />

последвани от няколко интервала, търсеното от нас име и още няколко<br />

допълнителни интервала в края. Можем да редуцираме информацията от<br />

променливата само до нужното ни име по следния начин:<br />

string reduced = fileData.Trim();<br />

Когато изведем повторно информацията на конзолата, съдържанието ще<br />

бъде "Ivan Ivanov", без нежеланите празни места.<br />

Премахване на ненужни символи по зададен списък<br />

Методът Trim(…) може да приема масив от символи, които искаме да<br />

премахнем от низа. Това може да направим по следния начин:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!