Board logo

标题: [已解决]elkay 能不能帮我个忙,谢谢了 [打印本页]

作者: tianlijian    时间: 2007-3-29 21:12     标题: [已解决]elkay 能不能帮我个忙,谢谢了

刚开始学习正则表达式,想有些问题想要你请教?

abcde

这个有没有办法让正则表达式一次同时匹配b d

     a   bc
           da sa         d
   a  b

在这个例子中我想把每行字母前面的每一个空格替换成一个0,也就是说如果某一行的最开始有三个连续的空格,就替换成三个0。
其他地方的空格不能替换,如第一行"a" "bc"间的空格不能替换?

上面两个例子不知道用正则表达式可不可以实现?
谢谢了。

[ 本帖最后由 tianlijian 于 2007-3-31 00:17 编辑 ]
作者: elkay    时间: 2007-3-29 21:58

。。。

我不是很明白你的意思啊,比如第一个单单匹配bd2个字母?还是匹配含有这2个字母的单词?

第二个这样应该可以匹配到前面的空格

  1. \A\s+|\n\s+
复制代码

[ 本帖最后由 elkay 于 2007-3-29 22:07 编辑 ]
作者: tianlijian    时间: 2007-3-29 22:40

  1. 空空空空空ab空空空dafsdsaf
  2. 空空空dafas空空空空空空dfs
  3. 空空a空b
复制代码

如果上面这个例子,我用汉字“空”来代表一个空格。
我的目的不仅是要找到匹配,而且要对找到的匹配进行替换(比如在EmEditor,notepad++等这类软件中进行替换)。
对于这个例子替换后想要达到的效果是
  1. 00000ab空空空dafsdsaf
  2. 000dafas空空空空空空dfs
  3. 00a空b
复制代码

把每一行开头的空格替换为0:只替换每行开头的,而且要有几个空格,就替换成几个0。

Thank you!

[ 本帖最后由 tianlijian 于 2007-3-29 22:41 编辑 ]
作者: elkay    时间: 2007-3-29 22:48

每行开头的一个空格要替换一个0,字符中间的空格不改变,好像没有办法,我再查资料研究研究吧,正则表达式我也不是很懂,呵呵,都还给老师了
作者: mutalisker    时间: 2007-3-29 23:58

(?=^|\n|\r\n)\s*?(?=\S.*)

楼主看看这个行不
作者: tianlijian    时间: 2007-3-30 10:47

原帖由 mutalisker 于 2007-3-29 23:58 发表
(?=^|\n|\r\n)\s*?(?=\S.*)

楼主看看这个行不

这个只能实现匹配,但不能实现替换。
作者: mutalisker    时间: 2007-3-30 13:18

不懂,匹配了不就可以替换了么?
作者: tianlijian    时间: 2007-3-30 18:01

我要的是有几个空格就要替换几个零,比如某行的开头有3个空格那么就替换为3个0;再如另一行的开头有5个零就要替换为5个0.
作者: elkay    时间: 2007-3-30 18:05

我说过了啊,应该是没有办法做到这样的
作者: tianlijian    时间: 2007-3-31 00:15

呵呵,我那个是回复7楼的。我也想了很久,没有想出来。所以才来问问的。
Thank you !




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2