次のようなオブジェクト一致を使用して、正規表現で定義されたグループごとに文字列を分割しようとしています。
if(match.Success)
{
foreach (Group group in match.Groups)
{
foreach(Capture capture in group.Captures)
{
//...
}
}
}
私が一致するはずの文字列は次のように形成されます:「で始まるかどうか」、任意の回数の文字(「、\ r、\ nなどを含む)」次に、任意の文字を何度でも、別の;、スペースと数字の組み合わせを少なくとも1回終了します。
この正規表現を使用しています:
("?[.|\n|\r|\r\n]*"?);(.*);([\d| ]*)(;([\d| ]*))*
最初のグループは任意の文字を含む文字列で、2番目のグループはテキスト/数字のみの文字列です。3番目のグループは常にここにあり、スペースと数字が混在しています。スペースと数、グループ4、56などでそれらを取得します。
私が一致しなければならない文字列の例:
"VIS METAUX TETE CYLINDRIQUE FENDUE EN ACIER ZINGUE DIAMETRE M10"; Longueur 60mm; 0046 10 30
"Visàmétauxàtêtecylindriquefendue。Norme:DIN84";Diamètre3mm。長さ16mm;0046 3 16
"Tournevis Torx sur monture:10、15、20、25、30、40" ;; 0613 434 10; 0613 434 10; 0613 434 20
これはまったく機能しません。私が一致するグループが良いことはめったになく、どうすればそれができるのかわかりません。