RegEx mask C#

RegEx mask C#
2020-06-20T17:43:19+02:00
2020-06-20T23:35:09+02:00
2022-08-19T01:42:06+02:00
oldSchoolDev
Sziasztok!

Egy Winforms textBox-ba kell rögzítenem max. 3 db. azonosítót, vesszővel elválasztva. Az azonosító felépítése: az elején két betű, majd három szám. Van úgy, hogy nincs azonosító, van úgy, hogy kettő van, stb.

Hogy lehet ezt megoldani RegEx-el?

Köszönöm!
Mutasd a teljes hozzászólást!
Hali!

Tessék, itt egy reguláris kifejezés-minta:
^(?:(?i:[a-z]{2}[0-9]{3})(?:,(?!\Z)|\Z)){0,3}$
Ha szóközök is lehetnek az azonosítók előtt/mögött:
^\s*(?:\s*(?i:[a-z]{2}[0-9]{3})(?:\s*,(?!\s*\Z)|\s*\Z)){0,3}$
]
Mutasd a teljes hozzászólást!

  • Valahogy így:

    private void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); Match match = Regex.Match(textBox1.Text, @"^((?(^)|,)([a-zA-Z]{2}\d{3})){0,3}$"); if (match.Success) { for (int i = 0; i < match.Groups[2].Captures.Count; i++) { listBox1.Items.Add(match.Groups[2].Captures[i].Value); } } else { listBox1.Items.Add("Hibás input"); } }


    Közben kijavítottam a kifejezést, mivel a korábbi
    \w
    az nem az igazi.
    [a-zA-Z]
    kell oda, ja.
    Mutasd a teljes hozzászólást!
  • Köszönöm!
    Minden online teszterben jól működik, de a textbox syntax error-t jelez. Aztán kiderült, hogy ez a winforms textbox (DevExpress) a POSIX ERE szintaktikának megfelelő kifejezéseket fogadja el.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd