删除重复的单词或短语的正则表达式 NO 以逗号或句点分隔
Regular expression to delete repeated words or phrases NO separated by commas or periods
****删除重复单词或短语的正则表达式,中间没有逗号
嗨!
正在尝试清理一些包含重复单词和短语的长字幕文件。我在这里得到了一个很好的解决方案来帮助重复的单词或短语 以逗号分隔 ,但我发现了更多类似的重复,它们 没有以逗号分隔 .
我不得不用线条来展示我的例子,因为这会破坏所有的格式!
下面是我需要修改的例子,没有用逗号分隔的单词和短语:
约翰,我会照顾我儿子的
我会负责儿子的教育。
你不应该
应该在巴黎?
哦,亲爱的,你为什么要去
否认?否认它?我们都知道。
等一下。我们过得怎么样
我们要用这个吗?
当然,那看起来像微波炉
一个微波炉,一个高压锅。
嗯,比如说男团
是一支很弱的队伍。一支很弱的队伍。
这里也一样,在普通对话框中添加了一些额外的破折号(一行中有两个破折号,而不是每行只有一个破折号):
-没有? -孩子呢?
-不,我有我的玩具
我应该如何解决这个问题?
谢谢!
我大概是overthinking/overcomplicating这个,但是用Notepad++,试试:
(?i)\b(.*?)([,.?!])(?:\h)*\h([,.?!])(?:\h(?=\h))?
替换为</code>。看网上<a href="https://regex101.com/r/NDKLum/1" rel="nofollow noreferrer">demo</a></p>
<hr />
<ul>
<li><code>(?i)
- 匹配余数不区分大小写。
\b
- 单词边界。
(.*?)
- 第一个捕获组,具有除换行符以外的任何字符的惰性匹配模式;
([,.?!])
- 第二个捕获组包含您提到的 4 个定界符中的任何一个。
(?:
- 打开一个非捕获组:
\h
- 匹配水平 space 字符以及在第 1 和第 2 个捕获组中完全匹配的字符。
)*
- 关闭非捕获组,匹配0+次。
\h
- 匹配另一个水平白色space和第一组中捕获的内容。
([,.?!])
- 第三个捕获组与我们的最终定界符。
(?:
- 打开第二个非捕获组:
\h(?=\h)
- 水平白色space,对我们第一个捕获组的反向引用和对另一个白色space. 的正前瞻
)?
- 关闭第二个非捕获组并使其可选。
在记事本++中:
我觉得有人 can/will 想出了更干净的东西 =)
您可以搜索 \b(.+?\b)(?=[, ])(+)
并替换为空白。
更换前
替换后
****删除重复单词或短语的正则表达式,中间没有逗号
嗨!
正在尝试清理一些包含重复单词和短语的长字幕文件。我在这里得到了一个很好的解决方案来帮助重复的单词或短语 以逗号分隔 ,但我发现了更多类似的重复,它们 没有以逗号分隔 .
我不得不用线条来展示我的例子,因为这会破坏所有的格式!
下面是我需要修改的例子,没有用逗号分隔的单词和短语:
约翰,我会照顾我儿子的
我会负责儿子的教育。
你不应该
应该在巴黎?
哦,亲爱的,你为什么要去
否认?否认它?我们都知道。
等一下。我们过得怎么样
我们要用这个吗?
当然,那看起来像微波炉
一个微波炉,一个高压锅。
嗯,比如说男团
是一支很弱的队伍。一支很弱的队伍。
这里也一样,在普通对话框中添加了一些额外的破折号(一行中有两个破折号,而不是每行只有一个破折号):
-没有? -孩子呢?
-不,我有我的玩具
我应该如何解决这个问题?
谢谢!
我大概是overthinking/overcomplicating这个,但是用Notepad++,试试:
(?i)\b(.*?)([,.?!])(?:\h)*\h([,.?!])(?:\h(?=\h))?
替换为</code>。看网上<a href="https://regex101.com/r/NDKLum/1" rel="nofollow noreferrer">demo</a></p>
<hr />
<ul>
<li><code>(?i)
- 匹配余数不区分大小写。
\b
- 单词边界。(.*?)
- 第一个捕获组,具有除换行符以外的任何字符的惰性匹配模式;([,.?!])
- 第二个捕获组包含您提到的 4 个定界符中的任何一个。(?:
- 打开一个非捕获组:
\h
- 匹配水平 space 字符以及在第 1 和第 2 个捕获组中完全匹配的字符。)*
- 关闭非捕获组,匹配0+次。
\h
- 匹配另一个水平白色space和第一组中捕获的内容。([,.?!])
- 第三个捕获组与我们的最终定界符。(?:
- 打开第二个非捕获组:
\h(?=\h)
- 水平白色space,对我们第一个捕获组的反向引用和对另一个白色space. 的正前瞻
)?
- 关闭第二个非捕获组并使其可选。
在记事本++中:
我觉得有人 can/will 想出了更干净的东西 =)
您可以搜索 \b(.+?\b)(?=[, ])(+)
并替换为空白。
更换前
替换后