Regulärer Ausdruck:
((?:--|/\*)[^~]*)~(\*/)?
C# -Code, um es zu verwenden:
string code = "all that text of yours";
Regex regex = new Regex(@"((?:--|/\*)[^~]*)~(\*/)?", RegexOptions.Multiline);
result = regex.Replace(code, "$1;$2");
nicht mit C# getestet, aber der regulären Ausdruck und der Austausch funktioniert in RegexBuddy mit Ihrem Text =)
Hinweis: Ich bin kein sehr brillanter Autor für reguläre Ausdrücke, also könnte es wahrscheinlich besser geschrieben worden sein. Aber es funktioniert. Und behandelt beide Fälle mit Ein-Liner-Kommentare beginnend mit - und auch die mehrzeiligen mit/* */
Edit: Lesen Sie Ihren Kommentar zu der anderen Antwort, so entfernt die ^
Anker, so dass es vorsichtig ist von Kommentaren, die auch nicht auf einer neuen Zeile beginnen.
Edit 2: Dargestellt könnte es ein wenig vereinfacht werden. Auch gefunden, es funktioniert gut ohne die Endung $ Anker auch.
Erläuterung:
// ((?:--|/\*)[^~]*)~(\*/)?
//
// Options:^and $ match at line breaks
//
// Match the regular expression below and capture its match into backreference number 1 «((?:--|/\*)[^~]*)»
// Match the regular expression below «(?:--|/\*)»
// Match either the regular expression below (attempting the next alternative only if this one fails) «--»
// Match the characters “--” literally «--»
// Or match regular expression number 2 below (the entire group fails if this one fails to match) «/\*»
// Match the character “/” literally «/»
// Match the character “*” literally «\*»
// Match any character that is NOT a “~” «[^~]*»
// Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
// Match the character “~” literally «~»
// Match the regular expression below and capture its match into backreference number 2 «(\*/)?»
// Between zero and one times, as many times as possible, giving back as needed (greedy) «?»
// Match the character “*” literally «\*»
// Match the character “/” literally «/»
gut, ist die Sache, die ich es auf Newline aufgeteilt werden müssen. und ich möchte nicht, da ich einen Code habe, der zu groß ist. Auch kann es passieren, dass für einen Code wie wählen Sie * aus g; - wählen Sie die Anweisung ich werde nicht in der Lage sein zu ersetzen; im Kommentar. – Archie