java字符串替换函数数如何一次性全部替换掉

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 318, 距离下一级还需 182 积分
论坛徽章:0
本帖最后由 fbt045 于
13:55 编辑
各位大侠,我想把某目录及其子目录中所有含aaa字符串的文件名改为含bbb,比如111aaa222.php改为111bbb222.php,请问该怎么写这条命令啊?
白手起家, 积分 153, 距离下一级还需 47 积分
论坛徽章:0
你这个重命名包括目录名吗?
白手起家, 积分 153, 距离下一级还需 47 积分
论坛徽章:0
写了一个脚本代码如下(暂不支持目录重名):#!/usr/bin/python
# -*- coding: UTF-8 -*-
#filename:rname.py
#date: by larry
import os,sys
import re
str01=sys.argv[2]
str02=sys.argv[3]
def Vallfile(path):
& & & & for dirnames,dirs,files in os.walk(path,True):
& & & & & & & & for filepath in files:
& & & & & & & & & & & & oldname=os.path.join(dirnames, filepath)
& & & & & & & & & & & & if str01 in oldname:
& & & & & & & & & & & & & & & & newname=re.sub(str01,str02,oldname)
& & & & & & & & & & & & & & & & os.rename(oldname,newname)
if __name__==&__main__&:
& & & & path =sys.argv[1]
& & & & Vallfile(path)复制代码使用方法:python rname.py 目录路径& &匹配文件名中的字符串& & 需要替换成的字符串
[root@OMS tmp]# ll sjk/
-rw-r--r-- 1 root root& & 0 02-28 15:16 ok.txt
drwxr-xr-x 2 root root
[root@OMS tmp]# ll sjk/sjk/
-rw-r--r-- 1 root root 0 02-28 15:16 aaaaaaaaaaaaaa.txt
[root@OMS tmp]# python rname.py sjk aaaaaaaaaaaaaa bbbbbbbbbbb
[root@OMS tmp]# ll sjk/sjk/
-rw-r--r-- 1 root root 0 02-28 15:16 bbbbbbbbbbb.txt
稍有积蓄, 积分 318, 距离下一级还需 182 积分
论坛徽章:0
楼上的兄弟,我运行了一下有提示:
Traceback (most recent call last):
&&File &rname.py&, line 19, in &module&
& & Vallfile(path)
&&File &rname.py&, line 16, in Vallfile
& & os.rename(oldname,newname)
OSError: [Errno 2] No such file or directory
这是怎么回事?
白手起家, 积分 153, 距离下一级还需 47 积分
论坛徽章:0
脚本没有问题呀,我机器是如下结果,贴出来你操作步骤看看。
[root@OMS tmp]# ll /tmp/sjk/
-rw-r--r-- 1 root root& & 0 02-28 15:16 newfile.txt
drwxr-xr-x 2 root root
drwxr-xr-x 2 root root
16:12 test123\aaaa
drwxr-xr-x 2 root root
16:11 test\test99
[root@OMS tmp]# python rname.py& &/tmp/sjk/&&new&&aaaaaaaaa
[root@OMS tmp]# ll /tmp/sjk/
-rw-r--r-- 1 root root& & 0 02-28 15:16 aaaaaaaaafile.txt
drwxr-xr-x 2 root root
drwxr-xr-x 2 root root
16:12 test123\aaaa
drwxr-xr-x 2 root root
16:11 test\test99
家境小康, 积分 1430, 距离下一级还需 570 积分
论坛徽章:0
有现成的 rename 命令。
稍有积蓄, 积分 318, 距离下一级还需 182 积分
论坛徽章:0
自由建客 发表于
有现成的 rename 命令。
我知道这个命令,但不知道怎么实现我的具体要求,这种回复一点意义没有
稍有积蓄, 积分 318, 距离下一级还需 182 积分
论坛徽章:0
9ding 发表于
回复 4# fbt045
脚本没有问题呀,我机器是如下结果,贴出来你操作步骤看看。
我试了一下,你的脚本好像只能替换一层子目录,再下层就不行了
稍有积蓄, 积分 318, 距离下一级还需 182 积分
论坛徽章:0
试了一下find ./ -name &*aaa*& -exec `rename aaa bbb *aaa*` {} \;
在同一目录下可以实现替换,但子目录会有权限问题,难道还得把权限都改掉?
白手起家, 积分 153, 距离下一级还需 47 积分
论坛徽章:0
[root@OMS tmp]# ll sjk/sjk/
-rw-r--r-- 1 root root& & 0 02-28 15:16 bbbbbbbbbbb.txt
-rw-r--r-- 1 root root& & 0 03-01 15:50 old.txt
drwxr-xr-x 3 root root
[root@OMS tmp]# ll sjk/sjk/sjk/sjk/
-rw-r--r-- 1 root root 0 03-01 15:51 old.txt
[root@OMS tmp]# python rname.py&&sjk/&&old2013 new2013
[root@OMS tmp]# ll sjk/sjk/
-rw-r--r-- 1 root root& & 0 02-28 15:16 bbbbbbbbbbb.txt
-rw-r--r-- 1 root root& & 0 03-01 15:50 new.txt
[root@OMS tmp]# ll sjk/sjk/sjk/sjk/
-rw-r--r-- 1 root root 0 03-01 15:51 new.txt
没有问题的呀 我这个是递归遍历所有的目录的,只是在遍历后加了rename操作。
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处查看: 3591|回复: 9
怎么用函数将单元格中包含某几个字符以后的内容全部替换掉
阅读权限20
在线时间 小时
本帖最后由 ysjhxh 于
15:29 编辑
要把包含&(&,&(&,“-”这3个符号及以后的内容全部替换掉
A1等于& &路由器-Q1(千兆接口(K)),要返回结果为&路由器&
已经完美解决,感谢各路大神!感谢8楼解决三个符号可能不全存在的问题
=LEFT(A1,MIN(FIND({&(&,&(&,&-&},A1&&((-&))-1)
阅读权限90
在线时间 小时
=LEFT(A1,MIN(FIND({&(&,&(&,&-&},A1))-1)
(4.28 KB, 下载次数: 2)
09:16 上传
阅读权限20
在线时间 小时
本帖最后由 ysjhxh 于
13:17 编辑
=LEFT(A1,MIN(FIND({&(&,&(&,&-&},A1))-1)
感谢,这种是 三种符号都有的情况的,实际是随机的,有可能只存在其中一种或两种,请问如何修改?
=LEFT(A1,MIN(IFERROR(FIND({&(&,&(&,&-&},A1),999))-1)
这样吗?好像有点问题……
阅读权限95
在线时间 小时
& & & & & & & &
瑞士军刀,正则表达式。
Sub jimin()
& & Dim reg As Object
& & Set reg = CreateObject(&vbscript.regexp&)
& &&&Dim sr, x
&&For x = 1 To Range(&a65536&).End(xlUp).Row
& &&&sr = Cells(x, 1)
& &&&With reg
& && &.Global = True
& && &.IgnoreCase = True
& && &.Pattern = &[-|\(|\(].*&
& && &sr = .Replace(Cells(x, 1), &&)
& && &Cells(x, 2) = sr
& &&&End With
& & Next x
厉害了,感谢
阅读权限95
在线时间 小时
。。。。。。
(26.31 KB, 下载次数: 0)
13:08 上传
阅读权限30
在线时间 小时
=MIN(IFERROR(MATCH(1=1,MID(A2,ROW($1:$99),1)=&-&,),99),IFERROR(MATCH(1=1,MID(A2,ROW($1:$99),1)=&(&,),99),IFERROR(MATCH(1=1,MID(A2,ROW($1:$99),1)=&)&,),99))
阅读权限20
在线时间 小时
& & & & & & & &
=MIN(IFERROR(MATCH(1=1,MID(A2,ROW($1:$99),1)=&-&,),99),IFERROR(MATCH(1=1,MID(A2,ROW($1:$99),1)=&(&,) ...
=LEFT(A1,MIN(IFERROR(FIND(&(&,A1),999),IFERROR(FIND(&-&,A1),999),IFERROR(FIND(&(&,A1),999))-1)
我是这样的
阅读权限30
在线时间 小时
=LEFT(A1,MIN(FIND({&(&,&(&,&-&},A1&&((-&))-1)复制代码
阅读权限20
在线时间 小时
这个合并聪明!!真是灵活的大脑!!!佩服佩服!
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师PostgreSQL 替换字符串方法及字符串操作函数
下面是PostgreSQL中提供的字符串操作符列表:
替换字符的例子:
update ab set a=replace(a,'aaa','0')
把a字段里面的&aaa&字符串替换成0
string || string
'Post' || 'greSQL'
PostgreSQL
bit_length(string)
字串里二进制位的个数
bit_length('jose')
char_length(string)
字串中的字符个数
char_length('jose')
convert(string using conversion_name)
使用指定的转换名字改变编码。
convert('PostgreSQL' using iso_8859_1_to_utf8)
'PostgreSQL'
lower(string)
把字串转化为小写
lower('TOM')
octet_length(string)
字串中的字节数
octet_length('jose')
overlay(string placing string from int [for int])
替换子字串
overlay('Txxxxas' placing 'hom' from 2 for 4)
position(substring in string)
指定的子字串的位置
position('om' in 'Thomas')
substring(string [from int] [for int])
抽取子字串
substring('Thomas' from 2 for 3)
substring(string from pattern)
抽取匹配 POSIX 正则表达式的子字串
substring('Thomas' from '...$')
substring(string from pattern for escape)
抽取匹配SQL正则表达式的子字串
substring('Thomas' from '%#&o_a#&_' for '#')
trim([leading | trailing | both] [characters] from string)
从字串string的开头/结尾/两边/ 删除只包含characters(缺省是一个空白)的最长的字串
trim(both 'x' from 'xTomxx')
upper(string)
把字串转化为大写。
upper('tom')
ascii(text)
参数第一个字符的ASCII码
ascii('x')
btrim(string text [, characters text])
从string开头和结尾删除只包含在characters里(缺省是空白)的字符的最长字串
btrim('xyxtrimyyx','xy')
给出ASCII码的字符
convert(string text, [src_encoding name,] dest_encoding name)
把字串转换为dest_encoding
convert( 'text_in_utf8', 'UTF8', 'LATIN1')
以ISO 8859-1编码表示的text_in_utf8
initcap(text)
把每个单词的第一个子母转为大写,其它的保留小写。单词是一系列字母数字组成的字符,用非字母数字分隔。
initcap('hi thomas')
length(string text)
string中字符的数目
length('jose')
lpad(string text, length int [, fill text])
通过填充字符fill(缺省时为空白),把string填充为长度length。 如果string已经比length长则将其截断(在右边)。
lpad('hi', 5, 'xy')
ltrim(string text [, characters text])
从字串string的开头删除只包含characters(缺省是一个空白)的最长的字串。
ltrim('zzzytrim','xyz')
md5(string text)
计算给出string的MD5散列,以十六进制返回结果。
md5('abc')
repeat(string text, number int)
重复string number次。
repeat('Pg', 4)
replace(string text, from text, to text)
把字串string里出现地所有子字串from替换成子字串to。
replace('abcdefabcdef', 'cd', 'XX')
abXXefabXXef
rpad(string text, length int [, fill text])
通过填充字符fill(缺省时为空白),把string填充为长度length。如果string已经比length长则将其截断。
rpad('hi', 5, 'xy')
rtrim(string text [, character text])
从字串string的结尾删除只包含character(缺省是个空白)的最长的字
rtrim('trimxxxx','x')
split_part(string text, delimiter text, field int)
根据delimiter分隔string返回生成的第field个子字串(1 Base)。
split_part('abc~@~def~@~ghi', '~@~', 2)
strpos(string, substring)
声明的子字串的位置。
strpos('high','ig')
substr(string, from [, count])
抽取子字串。
substr('alphabet', 3, 2)
to_ascii(text [, encoding])
把text从其它编码转换为ASCII。
to_ascii('Karel')
to_hex(number int/bigint)
把number转换成其对应地十六进制表现形式。
to_hex(4775807)
7fffffffffffffff
translate(string text, from text, to text)
把在string中包含的任何匹配from中的字符的字符转化为对应的在to中的字符。
translate('12345', '14', 'ax')
相关文章:Python常用字符串替换函数strip、replace及sub用法示例
转载 &更新时间:日 11:03:46 & 作者:Together_CZ
这篇文章主要介绍了Python常用字符串替换函数strip、replace及sub用法,结合实例形式分析了Python针对字符串替换的常用函数strip、replace及sub功能及简单使用技巧,需要的朋友可以参考下
本文实例讲述了Python常用字符串替换函数strip、replace及sub用法。分享给大家供大家参考,具体如下:
今天在做一道今年秋季招聘题目的时候遇上了一个替换的问题,题目看起来好长好复杂啊,真的,一时间,我看了好几遍也没看懂,其实实质很简单,就是需要把给定的一个字符串里面的指定字符替换成一些指定的内容就行了,这样首选当然是字典了,没有之一,题目很简单就不写出来了,在这里花了一点时间专门总结了一下字符串的替换的几个常用的函数,希望也能帮到有需要的人,自己也是当做一个学习的记录,好了,在这里就不多说什么了,在代码中该说的都说了,直接看程序:
#!/usr/bin/env python
# coding:utf-8
功能:对常见的几种字符串处理函数进行测试使用学习
Author:沂水寒城
def str_test():
str_list=['We are family!!!', '00 11 22 33 44 55 66 77 88 99',
'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
str_dict={
'!!!':'$$$',
#使用replace
基本用法:对象.replace(rgExp,replaceText,max)
rgExp和replaceText是必须要有的,max是可选的参数
str_list1=str_list
res_list=[]
for one_str in str_list1:
for key in str_dict:
one_str = one_str.replace(key, str_dict[key])
res_list.append(one_str)
print '**************replace替换结果为:*********************'
print str_list1
print res_list
re.sub()有5个参数,三个必选参数pattern,repl,string;两个可选参数count,flags
re.sub(pattern,repl,string,count,flags)
pattern:表示正则表达式中的模式字符串;
repl:被替换的字符串,或者是一个方法(既可以是字符串,也可以是函数);
当repl为字符串的时候,也就是需要 将string中与pattern匹配的字符串都替换成repl
当repl为方法的时候,就必须是一个带有一个参数,且参数为MatchObject类型的方法,该方法需要返回一个字符串。
string:要被处理的,要被替换的字符串;
count:指的是最大的可以被替换的匹配到的字符串的个数,默认为0,就是所有匹配到的字符串。
flgas:标志位
str_list2=str_list
res_list=[]
pattern_rule=re.compile(r'!!!')
for one_str in str_list2:
one_str = re.sub(pattern_rule, '$$$', one_str)
res_list.append(one_str)
print '**************sub替换结果为:*********************'
print str_list2
print res_list
#使用strip()
个人使用strip()很久了,感觉这个函数在一些事比如字符串末尾换行符去除等方面出奇的好用,
它并不算是一个纯正意义上跟上面两个函数类似的字符串处理的函数,但是用于字符串尾部删除等方面的时候
效果还是很不错的
str_list3=str_list
res_list=[]
for one_str in str_list3:
one_str=one_str.strip('!!!')
res_list.append(one_str)
print '**************strip替换结果为:*********************'
print str_list3
print res_list
str_test()
结果如些下:
**************replace替换结果为:*********************
['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
['We@are@family$$$', '00@11@22@33@44@55@66@77@88@99', 'trouble@is@a@friend$$$trouble@is@a@friend$$$', '&ove&ove&ove']
**************sub替换结果为:*********************
['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
['We are family$$$', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend$$$Trouble is a friend$$$', 'LoveLoveLove']
**************strip替换结果为:*********************
['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
['We are family', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend', 'LoveLoveLove']
这些东西应该算得上是很顺手的小工具了,特别是在一些应用中能起到四两拨千斤的作用,也许是夸张了哈,但是就是很喜欢这几个小工具,所以就写出来分享一下,不足之处还望多多指教,大家共同学习共同进步!
更多关于Python相关内容感兴趣的读者可查看本站专题:《》、《》、《》及《》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具查看: 16868|回复: 14
【讨论】在一个字符串中替换多个字符怎么做?正则吗?
论坛徽章:11
数据库环境是&&Oracle11gR2 64位的
create table test
&&url&&varchar2(1024)
insert into test(url) values('Page.aspx?guid=1611&Aiid=1611');
insert into test(url) values('/u/&lianxi.html');
insert into test(url) values('/Page.aspx?guid=21&Aiid=21&');
表的数据为
& && && && && &url
Page.aspx?guid=1611&Aiid=1611
/u/&lianxi.html
/Page.aspx?guid=21&iid=21&
需求是对其中的字符串(就是上面红色标记的字符串)进行替换,替换规则是
&A替换成 &
& 替换成 &
& 替换成 &
& && && && && &url
Page.aspx?guid=1611&iid=1611
/u/&lianxi.html
/Page.aspx?guid=21&iid=21&
我知道用replace函数可以替换,但是replace一次不能替换多个吧
难道要用正则才行?
怎么实现呢?
(发帖子后,给我帖子里面的很多转义符转义掉了)
[ 本帖最后由 fan0124 于
08:58 编辑 ]
论坛徽章:115
& 替换成 &&&?
replace可以替换多个的
论坛徽章:11
发帖子后,给我的符号转义掉了,本来是< 替换成 &的
怎么替换多个?
论坛徽章:32
这个是啥意思?
& 替换成 &
& 替换成 &
看不懂。看你的结果像是把替换掉么
论坛徽章:11
原帖由 regonly1 于
08:52 发表
这个是啥意思?
& 替换成 &
& 替换成 &
看不懂。看你的结果像是把替换掉么
恩恩,帖子编辑器给我转义掉了,我也没办法
是&Amp;替换成 &
& &&L 替换成 &
& &&G 替换成 &
现在是URL中可能包含多个这样的,那我要一次将多个这样的符号替换成对应的符号
论坛徽章:115
SQL& set define off
SQL& select replace('&LTxxx&LT','&LT','&')
论坛徽章:11
你这只是替换了单独一个而已
我上面的那个URL里可能同时含有&A和≫ 要同时替换这两个
论坛徽章:11
简单一点好了,假如现在一个字符串
Page.aspx?aa=1611&bb=1611&cc=200
同时将其中的aa替换成a,bb替换成b,cc替换成c
一条SQL语句完成呢?
论坛徽章:7
正则表达式就是用来方便使用的,为什么不用了,整的那么麻烦?!
论坛徽章:115
原帖由 fan0124 于
09:14 发表
你这只是替换了单独一个而已
我上面的那个URL里可能同时含有&A和≫ 要同时替换这两个
恐怕不行,用 3个replace把
perl的 TR可以实现单字符的逐个替换
比如 tr/atgc/tacg/
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号}

我要回帖

更多关于 java字符串替换函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信