Regex 클래스를 사용하여 특정 문자 패턴을 찾는다.
Regex.Match() 메서드는 매치된 정보를 갖는 Match 클래스 객체를 리턴한다
매치된 문자열이 존재하면 Match.Success 속성이 True가 되고, Match.Index 속성을 통해 문자 패턴 위치를 알 수 있다.
string str = "서울시 서초구 양재동 우리아파트";
Regex regex = new Regex("우리");
Match m = regex.Match(str);
if (m.Success)
{
Debug.WriteLine("{0}:{1}", m.Index, m.Value);
}
메타문자 의미
^ 라인의 처음
$ 라인의 마지막
\w 문자(영숫자) [a-zA-Z_0-9]
\s Whitespace (공백,뉴라인,탭..)
\d 숫자
* Zero 혹은 그 이상
+ 하나 이상
? Zero 혹은 하나
. Newline을 제외한 한 문자
[ ] 가능한 문자들
[^ ] 가능하지 않은 문자들
[ - ] 가능 문자 범위
{n,m} 최소 n개, 최대 m개
( ) 그룹
| 논리 OR
//텍스트박스에 한글만 입력하기
using System.Globalization;
private void textBox1_TextChanged(object sender, EventArgs e)
{
char[] inputchars = textBox1.Text.ToCharArray();
var sb = new StringBuilder();
foreach (var item in inputchars)
{
if (char.GetUnicodeCategory(item) == UnicodeCategory.OtherLetter)
{
sb.Append(item);
}
}
textBox1.Text = sb.ToString().Trim();
}
// 한글입력이 아닌 경우 한글만 입력하라고 팝업창을 띄우고자 할 경우
private void textBox1_TextChanged(object sender, EventArgs e)
{
char[] inputchars = textBox1.Text.ToCharArray();
var sb = new StringBuilder();
foreach (var item in inputchars)
{
if (char.GetUnicodeCategory(item) == UnicodeCategory.OtherLetter)
{
sb.Append(item);
}
else
{
MessageBox.Show("한글만 입력해주세요");
}
}
textBox1.Text = sb.ToString().Trim();
}
//텍스트박스에 영어만 입력하기
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(!(Char.IsLetter(e.KeyChar)) && e.KeyChar != 8) // 키값 8번은 백스페이스 값
{
e.Handled = true;
}
}
private void textBox1_Leave(object sender, System.EventArgs e)
{
Regex regex = new Regex(@"[a-zA-Z]");
Boolean ismatch = regex.IsMatch(textBox1.Text);
if (!ismatch)
{
MessageBox.Show("영문자만 입력해 주세요.");
}
}
//텍스트박스에 숫자만 입력하기
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(!(Char.IsDigit(e.KeyChar)) && e.KeyChar != 8)
{
e.Handled = true;
}
}
private void textBox1_Leave(object sender, System.EventArgs e)
{
Regex regex = new Regex(@"[0-9]");
Boolean ismatch = regex.IsMatch(textBox1.Text);
if (!ismatch)
{
MessageBox.Show("숫자만 입력해 주세요.");
}
}
private void textBox1_Leave(object sender, System.EventArgs e)
{
Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"); // 이메일
Boolean ismatch = regex.IsMatch(textBox1.Text);
if (!ismatch)
{
MessageBox.Show("E-Mail 형식만 가능합니다");
}
}
텍스트박스 입력을 하고 엔터키가 눌려졌을 경우
private void SearchBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnMovieSearch_Click(sender, e);
}
}
private void btnMovieSearch_Click(object sender, EventArgs e)
{
if (this.SearchBox.Text == "")
{
MessageBox.Show("검색어를 입력하세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.SearchBox.Focus();
}
else
{
string url = string.Format("http://movie.naver.com/movie/search/result.nhn?query={0}§ion=all&ie=utf8", SearchBox.Text.Trim());
System.Diagnostics.Process.Start(url);
}
}
텍스트박스 속성을 읽기전용으로 하고 싶은 경우
textBox1.ReadOnly = true;
textBox1.BackColor = System.Drawing.SystemColors.Window; // 배경색이 다르게 보이지 않도록 처리
텍스트박스에 커서가 맨마지막 글자위에 움직이게 하고 싶은 경우
textBox1.Focus(); // 선택하고
textBox1.SelectionStart = textBox1.Text.Length; // 글자의 마지막을 선택
textBox1.ScrollToCaret(); // 선택된 위치에 스크롤을 움직인다
'C# > 문법 및 기능' 카테고리의 다른 글
C# 과 VB 문법 차이 (0) | 2015.09.22 |
---|---|
C# Controls (0) | 2015.09.18 |
C# 콤보박스(comboBox) (0) | 2015.09.09 |
C# 키 입력처리 이벤트, Load Event, Form_Closing (0) | 2015.08.30 |
C# 정규식을 이용한 문자열 체크 (0) | 2015.08.25 |