Heim  >  Fragen und Antworten  >  Hauptteil

Vereinfachungsproblem regulärer Ausdrücke in Java oder Scala

Es besteht die Anforderung, zu erkennen, ob eine bestimmte Zeichenfolge aus sechs achtstelligen Hexadezimalzahlen besteht, die durch Unterstriche verbunden sind.
Zum Beispiel: "1234567F_1234567F_1234567F_1234567F_1234567F_1234567F"
Ich habe selbst eine reguläre Übereinstimmung wie folgt geschrieben:

"^[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}$"

Dieser reguläre Ausdruck kann erfolgreich abgeglichen werden, aber er fühlt sich zu kompliziert an und hat zu viele wiederholte Inhalte. Kann er vereinfacht werden?

学习ing学习ing2710 Tage vor699

Antworte allen(2)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:27:26

    我可能这么写^([0-9a-fA-F]{8}_){5}[0-9a-fA-F]{8}$.

    既然题主能用{8}了,那可以考虑把前面 八位十六进制数字+'_' 也用个数字来表达出现次数了。

    Antwort
    0
  • 怪我咯

    怪我咯2017-06-12 09:27:26

    可以把[0-9a-fA-F]再简化一下:

    ^([^\W_]{8}_){5}[^\W_]{8}$

    Antwort
    0
  • StornierenAntwort