我正在运行一个人们改善/验证一分钟音频记录转录的平台。
有些用户复制&将转录粘贴一次或多次到文本区域然后发送给我们。这是一种垃圾邮件。
我正在使用正则表达式,允许我检测并删除重复的文本。我现在就是这样:
正则表达式适用于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;
在此处查看: https://regex101.com/r/yibyuT/5
案例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 = preg_replace("#(^.*$)((?:.+^\1$)+)#ms", "$1", $Transcription);
结果还可以:
print $Transcription;
在此处查看: https://regex101.com/r/yibyuT/6
案例3:原始转录加3次重复
//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);
结果显示原始转录加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);
结果显示原始转录加上一些未经过重复修改的文本,所以它也不行:
print $Transcription;
我只需要一个函数用于所有情况(只有一次重复或两次或多次重复),包括不会被检测到或删除的转录中不重复的单词或短语的可能性。
答案 0 :(得分:0)
我认为这是一个有趣的问题,让我思考一下,但我认为我找到了你的解决方案。
<强>正则表达式强>
<div class="dropdown">
<button onclick="myFunction()" class="dropbtn">Add Equipment</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
<div class="dropdown">
<button onclick="myFunction()" class="dropbtn">Deployed Equipments</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
注意:对于不使用PCRE正则表达式的语言,您必须将上述正则表达式中的(^.*$)((?:\v+^\1$)+)
替换为\v
替换(无)
[\r\n]
[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-
将以下内容捕获到第一个捕获组中
(^.*$)
在行首处断言位置^
任意次匹配任何字符(使用.*
修饰符,这也会捕获新行)s
断言行尾的位置$
将以下内容捕获到第二个捕获组中
((?:\v+^\1$)+)
匹配以下一次或多次
(?: ... )+
匹配一个或多个垂直空格(包括垂直制表符,换行符等) - 对于非PCRE正则表达式,请使用\v+
代替[\r\n]
在行首处断言位置^
反向引用捕获组1 \1
断言行尾的位置