Ich führe einen Fund und ersetzen durch Schluck.Regex finden und ersetzen Sie mit Schluck/Knoten und verwenden Sie einen Teil des Finds String in der Ersetzung?
Ich brauche diese Zeichenfolge unten zu finden (ANYTHING kann alles sein, es ist nicht eine Reihe von 'ANYTHING'):
{% id_ANYTHING %}
Und es mit diesem ersetzen:
{% block ANYTHING %}{% endblock %}
Example1.
diese ersetzen:
{% id_page %}
mit diesem:
{% block page %}{% endblock %}
Example2.
ersetzen diese:
{% id_whatever %}
mit diesem:
{% block whatever %}{% endblock %}
Ive fand die Regex, die ich brauche, das Spiel zu finden. Ich benutze bereits gulp-replace für eine ähnliche, aber einfachere Aufgabe, also habe ich angefangen, es dafür zu benutzen, aber ich bin mir nicht sicher, wie man den "irgendwas" -Wert ergreift, damit ich ihn beim Ersetzen verwenden kann.
https://github.com/lazd/gulp-replace
replace = function() {
return gulp.src('before.html')
.pipe(replace({
patterns:
[{
match: /{% id_.{2,99} %}/g,
replacement: '{% block page %}{% endblock %}'
}]
}))
.pipe(gulp.dest('after.html'));
},
Sollte ich dies mit Gulp oder Knoten zu suchen, zu tun?
Sollte dies: Let Muster = neue RegExp (/ {% id _ (. {2,99})%} /, 'g'); In der Tat sein ?: let pattern = new RegExp ('{% id _ (. {2,99})%}', 'g'); https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions – Evans
@Evans Sie sind austauschbar. Wenn Sie '' '' um Ihren Ausdruck verwenden, brauchen Sie nicht das '//' um den Ausdruck herum. Sie können '//' jedoch als tatsächliches Literal verwenden, wenn Sie es an eine RegExp übergeben. [Siehe hier] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Description). Wenn Sie jedoch '' '' um Ihren Ausdruck herum verwenden, müssen Sie weiterhin den Escape-Regeln für Strings folgen, wo Sie sich wie bei der Literal-Notation mit '//' keine Gedanken darüber machen müssen. – peteb