查找和replace字符的想法

如果有公寓号码,我需要search地址字段并将一个字符更改为大写字母。 因此'521主街#3b'将变成'521主街#3B'。

我知道这样做的方式是编写一个循环遍历logging集的程序,查看最后一个字符的地址字段,看它是否是一个字母,如果它之前的字符是数字,则更改大小写最后一个字符并更新logging。

这是正则expression式(有没有使用过)会更快/更简单? 如果是这样,这是最好的编程环境或使用文本编辑器,如Textmate或六? 数据在MySQL和Excel中,但我可以将其导出到文本文件。

谢谢。

我用TextMate解决了这个问题,一旦我开始理解一个小正则expression式,很简单。 (详细信息请参见TextMate中最后一个字符的正则expression式 )

不过,我不知道像sed或awk这样的东西(我开始尝试)可能是一个更好的工具。 而Olexa提供的SQL解决scheme工作。 我只是不知道如何适用于整个logging集。

如果数据存储在MySQL中,那么最好在那里处理:

 UPDATE addresses SET address = CONCAT(LEFT(address, CHAR_LENGTH(address) - 1), UPPER(RIGHT(address, 1))) WHERE address REGEXP BINARY '#[[:digit:]]+[[:lower:]]{1}$' ; 

我添加了BINARY ,否则REGEXP不区分大小写,但可能需要省略BINARY以支持多字节string。 在这种情况下,将会进行剩余更新,但结果无论如何都是正确的。

PS SQL小提琴上的一个示例,显示哪些值受到影响,以及它们如何受到影响: http : //sqlfiddle.com/#!2/b29326/1