【问题标题】:underscore to camelCase RegEx下划线为驼峰正则表达式
【发布时间】:2012-03-28 16:49:26
【问题描述】:

我们的标准已经改变,我想在 Dreamweaver(它允许 RegEx 或我们刚刚获得 Visual Studio 2010,如果它允许通过 RegEx 搜索)中对所有下划线和驼峰式它们进行“查找和替换”。

RegEx 会做什么?

RegEx 让我感到困惑。我肯定需要做一些学习。

提前致谢!

更新:更多信息 - 我正在我的 html、aspx、cfm 或 css 文档中搜索包含下划线的任何字符串,并将其替换为以下大写字母。

【问题讨论】:

  • 让我们具体一点。你能举一个你的“源”和“目标”数据的例子吗?此外,您想要的可能是正则表达式,但不是 DreamWeaver 使用的正则表达式实现。您愿意使用其他工具吗?
  • 啊,好点。我正在我的 html、aspx、cfm 或 css 文档中搜索包含下划线的任何字符串,并将其替换为以下大写字母。我会使用任何有效的方法。无论如何,我都不感谢 Dreamweaver。

标签: regex replace dreamweaver camelcasing


【解决方案1】:

我遇到了这个问题,但我还需要处理将 gap_in_cover_period_d_last_5_yr 之类的字段转换为 gapInCoverPeriodDLast 并在 10 个其他 sed 表达式中找到 9 个,不喜欢 1 个字母的单词或数字。

所以要回答这个问题,请使用 sed。 sed -s 相当于在 vim 中使用 :s 命令。所以下面的例子是一个命令(即 sed -s/.../gc

这似乎奏效了,尽管我确实必须运行两次(word_a_word 在第一次通过时将变为 wordA_word,在第二次通过时变为 wordAWord。sed 后退命令对我的麻瓜血统来说太神奇了):-

s/\([A-Za-z0-9]\+\)_\([0-9a-z]\)/\1\U\2/gc

【讨论】:

    【解决方案2】:

    我最近不得不处理您询问的类似情况。这是我在 VIM 中使用的一个正则表达式,它为我完成了这项工作:

    %s/_\([a-zA-Z]\)/\u\1/g
    

    举个例子:

    this_is_a_test 变为 thisIsATest

    【讨论】:

      【解决方案3】:

      我不认为纯粹用正则表达式来做这件事的好方法。搜索 _ 字符很容易,例如 ._。应该努力找到两边都有东西的_,但是你需要一个更强大的脚本系统来改变_后面的字符的大小写。我建议 perl :)

      【讨论】:

      • 这是一个很好的观点。我不认为它可以在 Dreamweaver 中工作。它会查找:下划线,但它不能“保留”替换中下划线后面的字母:
      • hmmm 如果你能找到:下划线后面的字母,然后替换中的大写字母:在字符串 Adam_shiemke 你的例子._。会得到 m_s 我只想要 s 然后在另一个语句中将 s 大写(所以 大写 $1) .你知道怎么写吗?
      【解决方案4】:

      我有一个 PHP 解决方案

      preg_replace("/(_)(.)/e", "strtoupper('\\2')", $str)
      

      可能有更优雅的选择器标准,但我想保持简单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-08
        • 2011-07-26
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        相关资源
        最近更新 更多