У меня есть файл, который выглядит следующим образом:Regex: Сопоставьте текст до конца строки
J6 INT-00113G 227.905 5.994 180 [email protected]#$%&^)
J3 INT-00113G 227.905 -203.244 180 12341341312315
U13 EXCLUDES -42.210 181.294 180 QFP128
U3 IC-00276G 5.135 198.644 90 B%[email protected]
U12 IC-00270G -123.610 -201.594 0 SOP8_000
J1 INT-00112G 269.665 179.894 180 SOIC16_1
J2 INT-00112G 269.665 198.144 180 SOIC16-_2
.. .......... ....... ....... ... ................
И я хотел бы, чтобы соответствовать конечному значению в 6-м столбце для того, чтобы удалить это из списка. Длина значения в 6-м столбце не определена и может содержать любой символ. Так что я хотел бы сделать, это совпадение с конечным значением до пространства. или просто конец линии.
КОД:
// Reads the lines in the file to format.
var fileReader = File.OpenText(filePath + "\\Remove Package 1 Endings.txt");
// Creates a list for the lines to be stored in.
var fileList = new List<string>();
// Adds each line in the file to the list.
while (true)
{
var line = fileReader.ReadLine();
if (line == null)
break;
fileList.Add(line);
}
var mainResult = new List<string>();
var theResult = new List<string>();
foreach (var mainLine in fileList)
mainResult.Add(string.Join(" ", mainLine));
foreach (var theLine in mainResult)
{
// PLACEMENT ONE Regex
Match theRegex = Regex.Match(theLine, @"insert the regex here!");
if (theRegex.Success)
theResult.Add(string.Join(" ", theLine));
}
// Removes the matched values from both of the Regex used above.
List<string> userResult = mainResult.Except(theResult).ToList();
// Prints the proper values into the assigned RichTextBoxes.
foreach (var line in userResult)
richTextBox2.AppendText(line + "\n");
То, что я пытаюсь сделать, это получить файл выглядеть следующим образом:
J6 INT-00113G 227.905 5.994 180
J3 INT-00113G 227.905 -203.244 180
U13 EXCLUDES -42.210 181.294 180
U3 IC-00276G 5.135 198.644 90
U12 IC-00270G -123.610 -201.594 0
J1 INT-00112G 269.665 179.894 180
J2 INT-00112G 269.665 198.144 180
ВОПРОС:
- Может кто-нибудь поможет придумать регулярное выражение для этого?
EDIT:
ADDED КОД:
var lines = new List<string>(File.ReadAllLines(filePath + "\\Remove Package 1 Endings.txt"));
for (int i = 0; i < lines.Count; i++)
{
var idx = lines[i].LastIndexOf(" ");
if (idx != -1)
lines[i] = lines[i].Remove(idx);
richTextBox1.AppendText(lines[i] + Environment.NewLine
}
У вас есть табличный формат и вы хотите удалить последний столбец? зачем вы хотите использовать регулярное выражение для этого? Я не знаю, C# (я считаю, что это так), но, безусловно, он должен иметь метод * string split *. – mhyfritz
@mhyfritz: могу ли я сделать что-то вроде этого: 'foreach (var theLine в mainResult) {theLine.Split (''); theResult.Add (string.Join (theLine [0] + theLine [1] + theLine [2] + theLine [3] + theLine [4]));} '? – theNoobGuy
Как уже упоминалось, я не знаю C#, поэтому вы сами по себе с синтаксисом, но да, просто разделите каждую строку пробелом '' ''и отбросьте последнее поле. – mhyfritz