1

文字列内の部分文字列の特定のパターンを見つけたいです。ある程度まで取得できますが、抽出したいものを正確には取得できません。

私はコンソールアプリケーションに取り組んでいます。以下にコードについて言及しました

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string item = @"wewe=23213123i18n("""", test. ),cstr(12),i18n("""",test3)hdsghwgdhwsgd)"; 
            item = @"MsgBox(I18N(CStr(539)," + "Cannot migrate to the same panel type.)" +", MsgBoxStyle.Exclamation, DOWNLOAD_CAPTION)";
            string reg1 = @"i18n(.*),(.*)\)";
            string strVal = Regex.Match(item, reg1, RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase).Groups[0].Value;
            List<string> str = new List<string> ();
            str.Add(strVal);
            System.IO.File.WriteAllLines(@"C:\Users\E543925.PACRIM1\Desktop\Tools\Test.txt", str);
        }
    }
}


Expected output -  I18N(CStr(539)," + "Cannot migrate to the same panel type.)
Actual output -  I18N(CStr(539),Cannot migrate to the samepaneltype.),MsgBoxStyle.Exclamation, DOWNLOAD_CAPTION)

正規表現にいくつかの変更を加える必要があります。試してみましたが、成功しませんでした。私は正規表現と c# が初めてです。助けてください 。前もって感謝します ..

4

2 に答える 2

0

この正規表現を試すことができます:

i18n(\([^\)]*\))

つまり、i18n に一致し、open (, の後に closed 以外の任意の文字が続き、その後に closed ) を持つグループをキャプチャします。

于 2013-11-14T08:50:18.787 に答える