万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    regex C#

    http://stackoverflow.com/questions/11507239/linq-query-result-with-string-manipulation-and-regex

                string source = @"\354\202\254\354\232\251\354\236\220\354\203\201\354\204" +
                    @"\270\354\240\225\353\263\264\354\236\205\353\240\245";
    
                var r = new Regex(@"(\\[0-8]{3})*");
                var m = r.Match(source);
    
                string res = "";
                foreach (var x in m.Groups) {
                    byte[] bytes = x.ToString().Split (new[] { '\\' }, StringSplitOptions.RemoveEmptyEntries)
                    .Select (s => (byte)Convert.ToInt32 (s, 8))
                    .ToArray ();
                    string result = System.Text.Encoding.UTF8.GetString (bytes);
                    res += result;
                }
    
                Debug.Log (res);

    これだとカッコ内もされる

            if (GUILayout.Button("TEST"))
            {
                string source = @"うん\354\202\254\354\232\251\354\236\220\354\203\201\354\204" +
                    @"\270\354\240\225\353\263\264\354\236\205\353\240\245" +
                    @"あ\354\202\254\354\232\251\354\236\220\354\203\201\354\204" +
                    @"\270\354\240\225\353\263\264\354\236\205\353\240\245";
    
                var regex = new Regex(@"(?<text>(\\[0-8]{3})*)");
                string output = regex.Replace(source, new MatchEvaluator(RegexReadTerm));
    
                Debug.Log (output);
            }
        }
    
        private string RegexReadTerm(Match m)
        {
            byte[] bytes = m.Groups["text"].ToString().Split (new[] { '\\' }, StringSplitOptions.RemoveEmptyEntries)
                .Select (s => (byte)Convert.ToInt32 (s, 8))
                .ToArray ();
            string result = System.Text.Encoding.UTF8.GetString (bytes);
    
            // The term name is captured in the first group
            return