php顶用正则匹配多个结果,随机替换其中一个结果
php中用正则匹配多个结果,随机替换其中一个结果
用正则匹配字符,如果是全部替换很简单,使用preg_replace就可以了。但是我现在要对得到的多个匹配成功的结果,随机替换其中的一个,这个就有点麻烦了。自己写了个函数解决,不知道有没有其它更好的方法。例子 “I have a dream. I have a dream. I have a dream. I have a dream.” 匹配式 '/i/'。 上面的字符串中有4个匹配结果,我只要随机替换其中的一个。i替换成hell.
我的代码如下:
//正则处理函数 function rand_replace_callback($matches) { global $g_rand_replace_num, $g_rand_replace_index, $g_rand_replace_str; $g_rand_replace_index++; if($g_rand_replace_num==$g_rand_replace_index){ return $g_rand_replace_str; }else { return $matches[0]; } } //随机正则替换函数 如果有多个匹配的单元,随机替换其中的一个。 //注意global $g_rand_replace_num, $g_rand_replace_index, $g_rand_replace_str;这三个全局变量,不要与其它的冲突 //依赖一个正则处理函数 记录匹配单元总数,取一个总数范围内的随机值,在正则处理函数中判断相等则处理。 function rand_preg_replace($pattern, $t_g_rand_replace_str, $string) { global $g_rand_replace_num, $g_rand_replace_index, $g_rand_replace_str; preg_match_all($pattern, $string, $out);$find_count = count($out[0]); //匹配的单元总数 $g_rand_replace_num = mt_rand(1, $find_count); //符合正则搜索条件的集合 $g_rand_replace_index = 0; //实际替换过程中的index $g_rand_replace_str = $t_g_rand_replace_str; echo "现在找到符合的有{$find_count}个<br>"; $ss=preg_replace_callback($pattern,"rand_replace_callback",$string); return $ss; } $string = "I have a dream. I have a dream. I have a dream. I have a dream."; echo rand_preg_replace('/I/', "hell", $string);
扩展思考,我想减低第一个结果被替换的概念怎么办呢? 有些情况,第一个被替换不是很好,只需要少量的结果是第一个被替换。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



index.html stellt die Homepage-Datei der Webseite dar und ist die Standardseite der Website. Wenn ein Benutzer eine Website besucht, wird normalerweise zuerst die Seite index.html geladen. HTML (HypertextMarkupLanguage) ist eine Auszeichnungssprache, die zum Erstellen von Webseiten verwendet wird, und index.html ist ebenfalls eine HTML-Datei. Es enthält die Struktur und den Inhalt einer Webseite sowie Tags und Elemente, die zur Formatierung und zum Layout verwendet werden. Hier ist ein Beispiel für index.html-Code: <

Während des Entwicklungs- oder Lernprozesses bei der Verwendung von Golang kann es sein, dass wir auf die Fehlermeldung undefiniert:rand.Seed stoßen. Dieser Fehler tritt normalerweise auf, wenn Sie einen Zufallszahlengenerator verwenden müssen, da Sie in Golang einen Zufallszahlen-Startwert festlegen müssen, bevor Sie die Funktion im Rand-Paket verwenden können. In diesem Artikel wird erläutert, wie Sie diesen Fehler beheben können. 1. Führen Sie das Paket math/rand ein. Zuerst müssen wir das Paket math/rand in den Code einführen. existieren

MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem, das eine Vielzahl von Funktionen zum Verarbeiten und Betreiben von Daten bietet. Unter anderem wird die REPLACE-Funktion verwendet, um den angegebenen Teil der Zeichenfolge zu ersetzen. In diesem Artikel stellen wir die Verwendung der REPLACE-Funktion zum Ersetzen von Zeichenfolgen in MySQL vor und demonstrieren ihre Verwendung anhand von Codebeispielen. Schauen wir uns zunächst die Syntax der REPLACE-Funktion an: REPLACE(str,search_str,replace_str).

Welche Techniken gibt es zum Suchen und Ersetzen von Zeichenfolgen in Python? (Spezifisches Codebeispiel) In Python sind Zeichenfolgen ein häufiger Datentyp, und in der täglichen Programmierung stoßen wir häufig auf Such- und Ersetzungsvorgänge für Zeichenfolgen. In diesem Artikel werden einige gängige Techniken zum Suchen und Ersetzen von Zeichenfolgen vorgestellt, begleitet von spezifischen Codebeispielen. Um einen bestimmten Teilstring in einem String zu finden, können Sie die Methode find() oder index() des Strings verwenden. Die Methode find() gibt den Index des ersten Vorkommens des Teilstrings im String zurück.

Synchronisieren der Zufallszahlengenerierung in der gleichzeitigen Go-Programmierung: Verwenden Sie einen Mutex (sync.Mutex), um den Zugriff auf den Zufallszahlengenerator rand.Rand zu steuern. Jede Goroutine erhält die Mutex-Sperre, bevor sie Zufallszahlen generiert, und gibt die Mutex-Sperre nach der Generierung frei. Dadurch wird sichergestellt, dass jeweils nur eine Goroutine auf den Zufallszahlengenerator zugreifen kann, wodurch Datenrennen vermieden werden.

Die Funktion rand() verwendet bei jedem Aufruf dieselben anfänglichen Startwerte. Der voreingestellte anfängliche Startwert wird aus der Uhrzeit des Betriebssystems ermittelt, hat jedoch nur eine Genauigkeit im Mikrosekundenbereich. Das heißt, innerhalb einer sehr kurzen Zeitspanne verwenden viele rand()-Funktionsaufrufe denselben anfänglichen Startwert, was zur gleichen Zufallszahlengenerierung führt. Wie kann man dieses Problem lösen?

Der Index in MySQL bedeutet Index. Es handelt sich um eine Datenstruktur, die zur Beschleunigung der Abfrage von Datenbanktabellen verwendet wird. Der Index kann mit dem Katalog eines Buches verglichen werden entsprechende Zeilenpositionen, wodurch die Datenbank schneller lokalisiert und darauf zugegriffen werden kann. Die Funktion des Index besteht darin, die Abfrageeffizienz zu verbessern. Bei großen Tabellen kann die Datenbank die gesamte Tabelle zeilenweise durchsuchen Die benötigten Datenzeilen werden schnell in der Reihenfolge gefunden, was die Abfragegeschwindigkeit erheblich verbessert.

Problem bei der Ausführung des PHP-Quellcodes: Für die Indexfehlerbehebung sind spezifische Codebeispiele erforderlich. PHP ist eine weit verbreitete serverseitige Skriptsprache, die häufig zur Entwicklung dynamischer Websites und Webanwendungen verwendet wird. Allerdings treten beim Ausführen von PHP-Quellcode manchmal verschiedene Probleme auf, darunter auch „Indexfehler“. In diesem Artikel werden einige häufige Ursachen und Lösungen für Indexfehler vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, solche Probleme besser zu bewältigen. Problembeschreibung: Beim Ausführen eines PHP-Programms
