【发布时间】:2013-06-17 19:59:20
【问题描述】:
我正在尝试将文本文件中的某些字符串与正则表达式匹配,然后修改找到该模式的所有位置。这就像搜索和替换,但我正在尝试用找到的内容的修改版本替换(我确定它有一个名称,但我对它还不够熟悉)。
所以我正在寻找与[a-z]_[a-z] 匹配的字符串(例如some_string),我想通过删除下划线并将第二个小写单词大写来替换它,基本上是驼峰式(someString)。
关于如何做到这一点的任何指示(棘手的部分是我什至不知道如何谷歌)。
编辑
我尝试稍微简化问题以使其更通用,但我也尝试仅在匹配没有出现在引号中的情况下执行此操作。也就是说,我不想匹配引号中的下划线(所以,这里没有匹配:"this_is_a_string"...应该保持原样)。当我第一次发这篇文章时,我可能应该包括这个。
【问题讨论】:
-
您想查看反向引用。创建两个或多个与第一个相等的正则表达式,然后您可以使用其中一个的反向引用来修改它。
-
@jbrennan 我相信使用原生字符串会更容易,比如 array words = indexOf('-').split; words[1].charAt(1).upperCase; words.join ^^^psuedocode
-
@raam86 我想过这个问题,但我还有一个要求,即只有在引号中没有下划线时才能匹配下划线,所以正则表达式比我展示的要复杂一些。跨度>