Update: Der Regex-Klasse und die Match-Klasse können möglicherweise nicht korrekt Übereinstimmungen für einen regulären Ausdruck gefunden werden

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 822923 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie bestimmte Regex-Muster, verwenden um einen regulären Ausdruck zu suchen, können Sie falsche Ergebnisse erhalten. Sie erwarten z. B. die folgenden zwei Ausdrücke die gleichen Ergebnisse zurückgegeben:
"([^{}]|\n)*"
""([^{}])*"
jedoch der erste Ausdruck, der"([^{}]|\n) 1 ", nicht die richtigen Ergebnisse zurück. Der Hotfix in diesem Artikel behebt das Problem.

Ursache

Dieses Problem tritt wegen, wie der RegEx-Optimierer bestimmte Zeichenfolgen verarbeitet.

Lösung

Ein Hotfix zur Behebung dieses Problems ist inzwischen bei Microsoft erhältlich; dieser Hotfix wurde jedoch ausschließlich zur Behebung des in diesem Artikel beschriebenen Problems entwickelt. Deshalb sollten Sie nur Systeme aktualisieren, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn Sie durch dieses Problem nicht schwerwiegend betroffen sind, empfiehlt Microsoft daher, auf das nächste .NET Framework Service Pack warten, das diesen Hotfix enthält wird.

Wenn Sie das Problem sofort beheben möchten, wenden Sie sich an Microsoft Product Support Services, um den Hotfix zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft-Produktsupport und Informationen Supportkosten der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support
Hinweis: PLEASE DO NOT TRANSLATE and DELETE THIS PASSAGE. IT DOES NOT APPLY TO GERMANY.

Die englische Version dieses Hotfixes weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time () angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.
   Date         Time   Version            Size    File name
   -------------------------------------------------------------------------
   13-Jun-2003  01:32  1.0.3705.434       20,480  Perfcounter.dll  
   13-Jun-2003  10:58  1.0.3705.434    1,175,552  System.dll       
   13-Jun-2003  11:00  1.0.3705.434      311,296  System.runtime.remoting.dll  
   13-Jun-2003  11:01  1.0.3705.434      503,808  System.web.services.dll  
   13-Jun-2003  10:58  1.0.3705.434    1,302,528  System.xml.dll   
   13-Jun-2003  10:58  1.0.3705.434       65,536  Wsdl.exe         
				

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Die Regex -Klasse stellt einen unveränderlichen (schreibgeschützten) regulären Ausdruck dar. Es enthält auch statische Methoden, die die Verwendung von anderen Klassen regulärer Ausdrücke, ermöglichen ohne explizit Instanziieren von Objekten der anderen Klassen.

Match -Klasse stellt die Ergebnisse einer regulären Ausdruck übereinstimmenden Operation dar. Im folgenden Beispiel wird die Match -Methode der Klasse Regex verwendet, um ein Objekt vom Typ Vergleichen zurückzugeben, um die erste Übereinstimmung in der Eingabezeichenfolge zu suchen. Im Beispiel wird die Match.Success -Eigenschaft der Klasse übereinstimmen verwendet, um anzugeben, ob eine Übereinstimmung gefunden wurde.

Das folgende Codebeispiel veranschaulicht das Verhalten, das diesen Hotfix korrigiert:

using System;
using System.Text.RegularExpressions;
using System.Collections;

namespace brandon
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			Regex r = new Regex("([^{}]|\n)*");

	
			MatchCollection mc = r.Matches(@"\n{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033
			
	hfjkdashfdlahdfjashkfjdhsajlkfdhsafd}")
IEnumerator e = mc.GetEnumerator();
	Match m = null;
			while (e.MoveNext())
			{
				m = (Match) e.Current;
				if (m.Success) 
				{
					// Print out the character position where a match was found. 
					// (Character position 3 in this case.)
					Console.WriteLine("Found match at position " + m.Index);
					Console.WriteLine("Length of match = " + m.Length);
					Console.WriteLine("Matching text = "+m.Value);
				}
				else
					Console.WriteLine("No match found");
			}
		}
	}
}

Nachdem Sie den Hotfix angewendet haben, die Zeichenfolgen werden korrekt identifiziert als logisch identisch.

Eigenschaften

Artikel-ID: 822923 - Geändert am: Samstag, 1. Februar 2014 - Version: 1.5
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft .NET Framework 1.0
Keywords: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbnetframe100presp3fix kbfix kbbug KB822923 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 822923
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com