static class StringExtensions { public static string Extract(this string s) { //L'utilisation d'un StringBuilder est préconisé dès lors que //de multiples concaténations de chaînes vont être faites. var sb = new StringBuilder(); for(int i = s.Length - 1; i >= 0 && s[i] != ' '; --i) sb.Insert(0, s[i]); return sb.ToString(); } }
string source = "drw-rw-rw- 1 root root 16384 1980-01-01 00:00 appcache"; string res = source.Extract();
string dossier = "drw-rw-rw- 1 root root 16384 1980-01-01 00:00 appcache"; var q = (from c in dossier.Split(' ') select c).LastOrDefault(); MessageBox.Show(q);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionstring dossier = "drw-rw-rw- 1 root root 16384 1980-01-01 00:00 appcache dir"; var q = dossier.Split(' ').Skip(7); MessageBox.Show(String.Join(" ", q.ToArray()));
Regex reg = new Regex(@"\S+$"); MessageBox.Show(reg.Match("drw-rw-rw- 1 root root 16384 1980-01-01 00:00 appcache").Value);
Regex reg = new Regex(@"(?<=(\S+\s+){7})(.+$)"); MessageBox.Show(reg.Match("drw-rw-rw- 1 root root 16384 1980-01-01 00:00 .").Value); MessageBox.Show(reg.Match("drw-rw-rw- 1 root root 16384 1980-01-01 00:00 appcache").Value); MessageBox.Show(reg.Match("drw-rw-rw- 1 root root 16384 1980-01-01 00:00 app cache").Value);
using System; using System.Text.RegularExpressions; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { MessageBox.Show(GetFolderName("drw-rw-rw- 1 root root 16384 1980-01-01 00:00 .")); MessageBox.Show(GetFolderName("drw-rw-rw- 1 root root 16384 1980-01-01 00:00 appcache")); MessageBox.Show(GetFolderName("drw-rw-rw- 1 root root 16384 1980-01-01 00:00 app cache")); MessageBox.Show(GetFolderName("drw-rw-rw- 1 zzzzz abcabcabc 2134354654 200-02-23 12:50 aaaaaaaaaaaaaaaa")); } static String GetFolderName(String vsLine) { Regex reg = new Regex(@"(?<=(\S+\s+){7})(.+$)"); if (reg.IsMatch(vsLine)) return reg.Match(vsLine).Groups[2].Value; return String.Empty; } } }