Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于检测和删除重复段落的正则表达式_Php_Regex - Fatal编程技术网

Php 用于检测和删除重复段落的正则表达式

Php 用于检测和删除重复段落的正则表达式,php,regex,Php,Regex,我正在运行一个人民平台,在那里,人们改进/验证一分钟音频记录的转录 一些用户将抄本复制粘贴一次或多次到文本区域,然后发送给我们。这是一种垃圾邮件 我在一个正则表达式中工作,它允许我检测和删除重复的文本。这是我目前拥有的: 正则表达式在2/4的情况下有效 这是: preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription) 情况如下: 案例1:原始转录加上1次重复 //Transcription with only 1 repetit

我正在运行一个人民平台,在那里,人们改进/验证一分钟音频记录的转录

一些用户将抄本复制粘贴一次或多次到文本区域,然后发送给我们。这是一种垃圾邮件

我在一个正则表达式中工作,它允许我检测和删除重复的文本。这是我目前拥有的:

正则表达式在2/4的情况下有效

这是:

preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription)
情况如下:

案例1:原始转录加上1次重复

//Transcription with only 1 repetition
$Transcription = "[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-";
该功能正常工作:

$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
结果是:

print $Transcription;
请看这里:

案例2:原始转录加上2次重复

//Transcription with 2 repetitions
$Transcription = "[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-...",
//Transcription plus 3 repetitions
$Transcription = "[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-",
应用的功能:

$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
结果还可以:

print $Transcription;
请看这里:

案例3:原始转录加上3次重复

//Transcription with 2 repetitions
$Transcription = "[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-...",
//Transcription plus 3 repetitions
$Transcription = "[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-",
应用的功能:

$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
结果显示原始转录加上1次重复,因此不正常:

print $Transcription;
案例4原始转录加上N次迭代,以及每次和/或开始和/或结束时的一些文本

//Original transcription with 1 repetition and some text here and there
$Transcription = "some text here."./*Here start the original prhase*/."[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-"./*Here ends the original phrase*/."."./*Yes, a dot. Only a dot as 'some text between the repetitions'*/.""./*Here start the first repetition. Please note the vertical white space at the beginning*/.
[00:00:02] Hola, buenos días.
[00:00:03] Hola buenos días ¿Leo?
[00:00:07] Sí, sí, yo soy.
[00:00:07] Encantada de... De saludarle Leo. Mi nombre es y le llamo de. El motivo de mi llamada, Leo, es porque tenemos a nuestro técnicos especialistas en seguridad en su zona, ya que estamos actualizando la seguridad, porque hemos recibido pues varias solicitudes y llamadas de información por parte de vecinos, y simplemente era saber cuándo tendría diez minutitos para poder recibir usted la información ¿Cuándo le vendría mejor, Leo, está tarde o mañana?
[00:00:34] Er... Er... Por la tarde si quiere.
[00:00:37] Por la tarde, vale ¿Y cuál es el mejor horario...? ¿Las cinco, las seis?
[00:00:43] No, espera, es una tienda.
[00:00:46] Es una tienda, vale, entonces, un poquito por ser... ¿Cuánto me-. ¿Cuándo tiene menos trabajo normalmente a primera hora a las cinco, a las siete y media o a las ocho...?
[00:00:53] [SUPERPUESTO 00:00:53].
[00:00:53] A las cinco... A las cinco.
[00:00:56] ¿A las cinco? Vale, pues dime la dirección de la tienda Leo.
[00:01:00] Er... ¿Qué co-...? ¿Qué nombre es la compañía?
[00:01:03] Er... Somos Secu-/*Here ends the first repetition.*/
fddjkdfjk djk fdjkf djk fdjk fjkdfj kdjfkdj fjdkf jdjf d


/*some text at the end. Please note the several vertical white space at the end*/";
应用的功能:

$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
$Transcription = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
结果显示原始抄本加上一些未重新编写的文本,因此也不正常:

print $Transcription;
对于所有情况(仅一次重复或两次或两次以上重复),我只需要一个函数,包括将不重复的单词或短语转换为$TRANSACTION的可能性,它不会被检测或删除。

Brief 我认为这是一个有趣的问题,让我思考了一会儿,但我想我找到了你的解决方案


代码 Regex

注意:对于不使用PCRE正则表达式的语言,您必须将上述正则表达式中的
\v
替换为
[\r\n]

更换(无)


结果 输入 输出
解释
  • (^.*$)
    将以下内容捕获到第一个捕获组中
    • ^
      在行首断言位置
    • *
      匹配任意字符任意次数(使用
      s
      修饰符,这也会捕获新行)
    • $
      在行尾断言位置
  • ((?:\v+^\1$)+)
    将以下内容捕获到第二个捕获组中
    • (?:…)+
      匹配以下一次或多次
      • \v+
        匹配一个或多个垂直空格(包括垂直制表符、换行符等)-对于非PCRE正则表达式样式,请使用
        [\r\n]
      • ^
        在行首断言位置
      • \1
        反向引用到捕获组1
      • $
        在行尾断言位置
简介 我认为这是一个有趣的问题,让我思考了一会儿,但我想我找到了你的解决方案


代码 Regex

注意:对于不使用PCRE正则表达式的语言,您必须将上述正则表达式中的
\v
替换为
[\r\n]

更换(无)


结果 输入 输出
解释
  • (^.*$)
    将以下内容捕获到第一个捕获组中
    • ^
      在行首断言位置
    • *
      匹配任意字符任意次数(使用
      s
      修饰符,这也会捕获新行)
    • $
      在行尾断言位置
  • ((?:\v+^\1$)+)
    将以下内容捕获到第二个捕获组中
    • (?:…)+
      匹配以下一次或多次
      • \v+
        匹配一个或多个垂直空格(包括垂直制表符、换行符等)-对于非PCRE正则表达式样式,请使用
        [\r\n]
      • ^
        在行首断言位置
      • \1
        反向引用到捕获组1
      • $
        在行尾断言位置

非常感谢您的贡献。我忘了添加htmlentities转换。问题已经更新。请检查为什么不反转两行代码,以便正则表达式在
htmlentities()之前运行?这将更改解析它所需的问题和代码,因为它不再是多读的。另外,原始答案不会将不重复的单词或短语转换为$TRANSACTION,而$TRANSACTION将不会被检测或删除。@EstebanGorupicz需要对您以前的评论进行澄清,您是否尝试删除重复的单词?如果是这样,这将需要一个不同的正则表达式。此处发布的原始正则表达式适用于原始输入/输出。它之所以能够工作,是因为原始输入的多行特性,而不是htmlentities转换。我会离开那里。原始答案并不能解决将不重复的单词或短语转换成$translation的可能性,这些单词或短语将不会被检测或删除。非常感谢您的贡献。我忘了添加htmlentities转换。问题已经更新。请检查为什么不反转两行代码,以便正则表达式在
htmlentities()之前运行?这将更改解析它所需的问题和代码,因为它不再是多读的。另外,原始答案不会将不重复的单词或短语转换为$TRANSACTION,而$TRANSACTION将不会被检测或删除。@EstebanGorupicz需要对您以前的评论进行澄清,您是否尝试删除重复的单词?如果是这样,这将需要一个不同的正则表达式。此处发布的原始正则表达式适用于原始输入/输出。它之所以能够工作,是因为原始输入的多行特性,而不是htmlentities转换。我会离开那里。原始答案并不能将不重复的单词或短语转换为$translation