【问题标题】:Regular Expression - Add a character before/after each word正则表达式 - 在每个单词之前/之后添加一个字符
【发布时间】:2017-03-29 14:09:02
【问题描述】:

使用 Notepad++replace 功能,我尝试添加符号“+”或“[”在我列表中的每个单词之前。

列表示例:

  • 蓝色车
  • 红车大
  • 小红车
  • 环保车大
  • 绿色小车

我正在寻找以下结果:

  • +蓝色+汽车
  • +红+车+小
  • +红+车+大
  • ..等

我知道如何在每行之前添加一个字符...但是如果不使用替换“blue”,我找不到将它添加到每个单词前面的方法到“+蓝色”。

【问题讨论】:

  • 这和php有什么关系?
  • php 在这方面有什么作用? (让我理解您的问题:使用记事本正则表达式替换单词)
  • 尝试将\b\w+\b 替换为+$&
  • 请检查最适合您的答案并考虑接受答案。如果您觉得答案有帮助,请考虑点赞。

标签: regex notepad++


【解决方案1】:

应该是跨平台解决方案

搜索\b\w+\b(或\b[[:alpha:]]+\b
替换+$&

搜索模式详情

  • \b - 前导词边界
  • \w+ - 1 个或多个单词字符(如果使用 [[:alpha:]]+,则 1+ 个字母)
  • \b - 词尾边界

替换细节+ 是文字加号,$& 是整个匹配的反向引用。

看截图:

【讨论】:

  • 感谢您的明确解释...还有一些工作来管理正则表达式!
  • 你的意思是“学习” :) ?请注意,大多数在线正则表达式测试人员应该在一定程度上受到信任,因为它们通常不支持处理正则表达式的 NPP 方式。检查Boost regex syntax,并始终在 Notepad++ 中进行测试。
  • 是的,学习是关键!我发现自己越来越多地使用正则表达式来处理大词列表和表格。但是我没有时间加深所有科目。再次感谢您的帮助!
【解决方案2】:

(见下方截图)

  • 打开“查找/替换”对话框 (Ctrt+H)
  • Find 输入中,输入这个正则表达式:(\b\w),意思是“单词边界后跟一个字母”
  • Replace with 输入中,输入以下替换:+\1,这意味着“放置一个+ 符号,后跟正则表达式括号之间匹配的任何内容”
  • 点击Show advanced options复选框
  • 点击Search with regular expressions单选按钮
  • 然后根据需要多次点击Replace 按钮,或者使用一次Replace all

编辑:对于 Windows 几乎相同(请参阅查找/替换对话框 http://sqlblog.com/blogs/jamie_thomson/image_1AFC2B61.png),正则表达式选项位于左下方

【讨论】:

  • 是的,我试过了,对我有用。见截图。您是否使所有正则表达式选项与显示的对话框相同?
  • 好的,\b 在 Windows NPP 中似乎无法正常工作。
  • 也添加了 Windows 答案,但屏幕截图来自网络,因此选项未正确标记
  • 我在 Windows 上测试过。使用red car small(\b\w) 替换为+\1 产生:+r+e+d +c+a+r +s+m+a+l+l
  • 否,在 Windows NPP 中,\b\w 不起作用,请参阅 Notepad++ Capitalize Every First Letter of Every Word
猜你喜欢
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多