【问题标题】:Visual studio find & replace with regex, replace space with underscoreVisual Studio 用正则表达式查找和替换,用下划线替换空格
【发布时间】:2013-04-12 16:37:40
【问题描述】:

我在 c# 中有一个很大的文本列表,想要用作枚举列表。 例如:

Zone Status Message
Zones Snapshot Message
Partition Status Message
Partitions Snapshot Message
Supported transition message flags
System Status Message
X-10 Message Received
Log Event Message
Keypad Message Received

现在我想使用 Visual Studio 中的查找和替换对话框在所有单词中添加下划线而不是空格, 例如

Zone_Status_Message
Zones_Snapshot_Message

如何使用正则表达式或通配符来实现这一点? 这真的会为我节省很多时间。

提前致谢。

编辑:
由于我从中获取文本的源文档格式不正确,这些单词也可以有空格和前后。所以下划线只能在2个单词之间加空格。

【问题讨论】:

    标签: regex visual-studio-2010 replace


    【解决方案1】:

    在 VS 2010 中,您可以使用替换字母数字字符之间的空格

    查找内容 {:a} {:a}
    替换为 \1_\2

    确保选中Use Regular expressions

    全部替换

    【讨论】:

      【解决方案2】:

      如果您只想匹配字母数字单词之间的空格,请搜索 > < 并将所有内容替换为 _

      在 VS 正则表达式(直到 2010 版)中,> 表示“单词末尾的位置”,< 表示“单词开头的位置”。

      在 VS 2012 及更高版本中,该正则表达式可以写为 \b \b

      【讨论】:

      • 我从另一个文档中复制了单词,因此它们的格式并不正确。这样做有时还会在单词的前后添加下划线。
      • @just8laze:那么您需要编辑您的问题以反映这一点。您的问题还不需要正则表达式。如果不知道您所面临的所有具体限制,就不可能建议一个有效的正则表达式。不要过度简化您的问题,否则您会得到仅适用于简单情况的答案...
      猜你喜欢
      • 2011-03-09
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      相关资源
      最近更新 更多