arrays - Manipulating Matched values in Regex C# -


i have read text file , matched data interested in. question is, best way manipulate data have matched? code reading text file is.

 openfiledialog dialog = new openfiledialog();        dialog.filter =           "all files (*.*)|*.*";        //dialog.initialdirectory = "c:\\";        dialog.title = "select text file";         if (dialog.showdialog() == dialogresult.ok)        {            string fname = dialog.filename; // selected file            label1.text = fname;            if (string.isnullorempty(richtextbox1.text))            {                var matches1 = regex.matches(system.io.file.readalltext(fname), @"l10 p\d\d\d r \s\s\s\s\s\s\s")           .cast<match>()           .select(m => m.value)           .tolist();                 richtextbox1.lines = matches1.toarray();            } 

the result looks like:

l10 p015 r +4.9025 

and need this:

#2015=4.9025 

l10 excluded, p015 turns #2015, r , + turn =, , number stays same.

use capturing groups:

  • first change regex to:

    l10 p(?<key>\d{3}) r \s(?<val>\s{6}) 

    the (?<name>...) syntax lets declare named capturing group. can later retrieve value matched group.

  • next, when have match object, can extract matching group contents match.groups["key"].value , match.groups["val"].value, that:

    .select(m => string.format("#2{0}={1}", m.groups["key"].value, m.groups["val"].value)) 

Comments

Popular posts from this blog

Fail to load namespace Spring Security http://www.springframework.org/security/tags -

sql - MySQL query optimization using coalesce -

unity3d - Unity local avoidance in user created world -