在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

huangapple go评论51阅读模式
英文:

regular expression to remove all other words except the words between special characters in notepad++

问题

我尝试在Notepad++中创建一个正则表达式来删除除了那些被特殊字符括起来的词之外的词语。我正在使用这个正则表达式 \<.*?\> 来删除词语以及文本。

例如:<br/>
示例文本:

随机文本 &lt;ABCD&gt; 随机文本
随机文本 &lt;QWERT&gt; 随机文本
随机文本 &lt;XYZ&gt; 随机文本

输出:

随机文本 随机文本
随机文本 随机文本
随机文本 随机文本

我只想要与上面的正则表达式相反的效果。

例如:<br/>
示例文本:

随机文本 &lt;ABCD&gt; 随机文本
随机文本 &lt;QWERT&gt; 随机文本
随机文本 &lt;XYZ&gt; 随机文本

输出:

&lt;ABCD&gt;
&lt;QWERT&gt;
&lt;XYZ&gt;
英文:

I am trying to create a regex in Notepad++ to remove words except those enclosed between special characters. I am using this regex \&lt;.*?\&gt; which removes the words along with text.

Eg:<br/>
Sample text

random text &lt;ABCD&gt; random text
random text &lt;QWERT&gt; random text
random text &lt;XYZ&gt; random text

Output

random text random text
random text random text
random text random text

I just want the opposite of the above regex

Eg:<br/>
Sample text

random text &lt;ABCD&gt; random text
random text &lt;QWERT&gt; random text
random text &lt;XYZ&gt; random text

Output

&lt;ABCD&gt;
&lt;QWERT&gt;
&lt;XYZ&gt;

答案1

得分: 2

这是用于 (*SKIP)(*FAIL) 动词的任务。

  • <kbd>Ctrl</kbd>+<kbd>H</kbd>
  • 查找内容: &lt;.+?&gt;(*SKIP)(*FAIL)|.+?
  • 替换为: 保留为空
  • 选中 环绕
  • 选中 正则表达式
  • 取消选中 . 匹配换行符
  • <kbd>全部替换</kbd>

解释:

&lt;.+?&gt;       # 匹配要保留的字符串
(*SKIP)     # 跳过这个匹配
(*FAIL)     # 将其视为失败
  |           # 或者
.+?         # 匹配除换行符以外的任何字符

屏幕截图(之前):

在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

屏幕截图(之后):

在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

英文:

This is a job for (*SKIP)(*FAIL) verbs.

  • <kbd>Ctrl</kbd>+<kbd>H</kbd>
  • Find what: &lt;.+?&gt;(*SKIP)(*FAIL)|.+?
  • Replace with: LEAVE EMPTY
  • TICK Wrap around
  • SELECT Regular expression
  • UNTICK . matches newline
  • <kbd>Replace all</kbd>

Explanation:

&lt;.+?&gt;       # matches the string to be kept
(*SKIP)     # skip this match
(*FAIL)     # considere it failed
  |           # OR
.+?         # match any character but newline

Screenshot (before):

在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

Screenshot (after):

在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

答案2

得分: 1

Find:

(?m).+?(&lt;.*?&gt;|$)

Replace with:

$1

where:

  • (?m) is a flag activating the multiline mode
  • .+? searches for one or more characters (but as less as possible)
  • (&lt;.*?&gt;|$) matches the desired pattern or the end of the line

Screenshots

Before:
在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

After:
在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

英文:

Find:

(?m).+?(&lt;.*?&gt;|$)

Replace with:

$1

where:

  • (?m) is a flag activating the multiline mode
  • .+? searches for one or more characters (but as less as possible)
  • (&lt;.*?&gt;|$) matches the desired pattern or the end of the line

Screenshots

Before:
在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

After:
在Notepad++中,用正则表达式删除除了特殊字符之间的单词的表达式是:

huangapple
  • 本文由 发表于 2023年1月9日 17:47:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/75055493.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定