118 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using System.Windows.Forms;
 | |
| using System.Text.RegularExpressions;
 | |
| using AR;
 | |
| 
 | |
| namespace Project.Dialog
 | |
| {
 | |
| 	public partial class RegExTest : Form
 | |
| 	{
 | |
| 		Regex regex = null;
 | |
| 
 | |
| 		public RegExTest()
 | |
| 		{
 | |
| 			InitializeComponent();
 | |
| 		}
 | |
| 
 | |
| 		private void RegExTest_Load(object sender, EventArgs e)
 | |
| 		{
 | |
| 
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 		private void button1_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			bool retval = false;
 | |
| 
 | |
| 
 | |
| 			//이 데이터가 정규식에 match 가되는지 확인하.ㄴㄷ
 | |
| 			var ucnt = 0;
 | |
| 			var MatchEx = textBox1.Text.Trim();
 | |
| 			var lines = this.richTextBox1.Text.Replace("\r", "").Split('\n');
 | |
| 			foreach (var line in lines)
 | |
| 			{
 | |
| 				var vdata = line.Split(':')[1];
 | |
| 				if (vdata.isEmpty()) continue;
 | |
| 
 | |
| 
 | |
| 				regex = new Regex(MatchEx);    //한글 3글자
 | |
| 				if (regex.IsMatch(vdata))
 | |
| 				{
 | |
| 					var MatchIndex = 0;
 | |
| 					var GroupIndex = 0;
 | |
| 					var matchlist = regex.Matches(vdata);
 | |
| 					var match0 = matchlist[MatchIndex];
 | |
| 					var grpval = match0.Groups[GroupIndex].Value;
 | |
| 					var result = grpval.Trim();
 | |
| 					//if (dr.ReplaceEx.isEmpty() == false && dr.ReplaceStr.isEmpty() == false)
 | |
| 					//{
 | |
| 					//	regex = new Regex(dr.ReplaceEx);
 | |
| 					//	if (regex.IsMatch(result)) result = regex.Replace(result, dr.ReplaceStr);
 | |
| 					//}
 | |
| 					//ucnt += 1;
 | |
| 					//switch (dr.varName)
 | |
| 					//{
 | |
| 					//	case "QTY0":
 | |
| 					//		vdata.QTY0 = result;
 | |
| 					//		vdata.QTYRQ = vdata.StartsWith("RQ");
 | |
| 					//		break;
 | |
| 					//	case "SID":
 | |
| 					//		vdata.SID = result;
 | |
| 					//		break;
 | |
| 					//	case "LOT":
 | |
| 					//		vdata.VLOT = result;
 | |
| 					//		break;
 | |
| 					//	case "PART":
 | |
| 					//		vdata.PARTNO = result;
 | |
| 					//		break;
 | |
| 					//	case "MFGDATE":
 | |
| 					//		vdata.MFGDATE = result;
 | |
| 					//		break;
 | |
| 					//	case "QTY":
 | |
| 					//		vdata.QTY = result;
 | |
| 					//		break;
 | |
| 					//	default:
 | |
| 					//		ucnt -= 1;
 | |
| 					//		PUB.log.AddAT($"RegEx 대상 VarName을 찾을 수 없습니다. 값:{dr.varName}");
 | |
| 					//		break;
 | |
| 					//}
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 		private void button2_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			var pattern = textBox1.Text.Trim();
 | |
| 			try
 | |
| 			{
 | |
| 				regex = new Regex(pattern);    //한글 3글자
 | |
| 				if (regex.IsMatch(textBox2.Text.Trim()))
 | |
| 				{
 | |
| 					setlog("match");
 | |
| 				}
 | |
| 				else setlog($"no match\npattern:{pattern}\nValue:{textBox2.Text}");
 | |
| 			}
 | |
| 			catch (Exception ex)
 | |
| 			{
 | |
| 				setlog(ex.Message);
 | |
| 			}
 | |
| 		}
 | |
| 		void addlog(string m)
 | |
| 		{
 | |
| 			this.rtLog.AppendText(m + "\r\n");
 | |
| 		}
 | |
| 		void setlog(string m)
 | |
| 		{
 | |
| 			this.rtLog.Text = m;
 | |
| 		}
 | |
| 	}
 | |
| }
 | 
