2016-06-21 9 views
1

Ich habe ein Problem. ich programmiere einen ansi zu utf-8 format konverter für php, css, js dateien und benutze windows10 powershell script console. finden Sie in meinem Beispiel-Code:ersetzen Regex erfassen einen Text ohne Ausnahme Zeichenfolge

$replacer ="function(testing regex function(bla bla newfunction(alternative function (not capture this mb_function(or mb_function (need a right regex." 
$regx = "([^_]function\s?\()+" 
$replacer -replace $regx, "hot_function(" 

Ausgang (nicht gültig):

function(testing regexhot_function(bla bla nehot_function(alternativehot_function(not capture this mb_function(or mb_function (need a right regex. 

benötigen gültige Ausgabe:

hot_function(testing regex hot_function(bla bla newhot_function(alternative hot_function(not capture this mb_function(or mb_function (need a right regex. 

Ich teste regex diese Seite nicht richtig Syntax gefunden: https://regex101.com/r/kV4gV6/1 Wie kann ich dieses Problem beheben? Bitte helfen Sie mir. Danke allen Helfern.

+0

** Regex101 nicht .NET Regex unterstützt ** Es verwendet werden können einfache Muster zu testen, aber verlassen Sie sich nicht darauf. vollständig. Sie brauchen nur die '' (?

+0

Nun, dieser einfache Lookbehind funktioniert auch auf regex101.com gut.In anderen Fällen, wo Sie .NET regex benötigen Syntaxprüfung und Erklärung jedes Untermusters, benutze [Expresso] (http://www.ultrapico.com/expresso.htm) (es ist kostenlos, nach 30 Tagen bitten sie dich, es kostenlos zu registrieren) –

+0

Warum hast du getaggt mit C#, wenn Sie PowerShell verwenden? –

Antwort

2

würde ich eine negative Lookbehind in diesem Fall benutzen:

(?<!_)function\s*\(
^^^^^^ 

Es wird das Spiel nicht, wenn ein f mit _ vorangestellt ist.

Siehe regex demo

Ersetzen mit hot_function(:

enter image description here

+0

Vielen Dank für Ihr Interesse Ich hatte zum dritten Mal gesucht Ich habe die Site-Code-Experimente erforscht . Du sagst diese Seite zu meinen Favoriten. Ich benutze zum Download das Programm war sehr funktional. Es gibt bereits Schwierigkeiten in der Regex. Danke dir nochmal. Respekt. +1 – NovaYear

+0

Es gibt eine andere nützliche Site, um .NET Regex zu testen: [* RegexHero *] (http://regexhero.net/tester). Sie können Ihre Muster dort sogar kostenlos benchmarken. Und bezüglich des Musters können Sie viel über [* Lookarounds * hier] lesen (http://www.regular-expressions.info/lookaround.html). –

Verwandte Themen