Warum wird ein längeres Token in einer Abwechslung nicht abgeglichen?

Ich verwende Ruby 2.1, aber das Gleiche kann auf der Rubular-Site repliziert werden.

Wenn das mein String ist:

儘管中國婦幼衛生監測辦公室制定的

Und ich mache eine Regex-Übereinstimmung mit diesem Ausdruck:

(中國婦幼衛生監測辦公室制定|管中)

Ich erwarte den längeren Token als Match.

中國婦幼衛生監測辦公室制定

Stattdessen bekomme ich die zweite Abwechslung als Match.

Soweit ich weiß, funktioniert es so, wenn nicht in chinesischen Schriftzeichen.

Wenn das mein String ist:

foobar

Und ich benutze diesen regulären Ausdruck:

(foobar|foo)

Das zurückgegebene Übereinstimmungsergebnis istfoobar. Wenn die Reihenfolge anders ist, ist dies die übereinstimmende Zeichenfolgefoo. Das ergibt für mich einen Sinn.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage