Files
ATV_STDLabelAttach/Handler/Project/Dialog/RegExTest.cs
2025-08-06 10:05:24 +09:00

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;
}
}
}