世界之窗论坛's Archiver

tianlijian 发表于 2007-3-29 21:12

[已解决]elkay 能不能帮我个忙,谢谢了

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

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

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

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

[[i] 本帖最后由 tianlijian 于 2007-3-31 00:17 编辑 [/i]]

elkay 发表于 2007-3-29 21:58

。。。:cold:

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

第二个这样应该可以匹配到前面的空格
[code]
\A\s+|\n\s+
[/code]

[[i] 本帖最后由 elkay 于 2007-3-29 22:07 编辑 [/i]]

tianlijian 发表于 2007-3-29 22:40

[code]空空空空空ab空空空dafsdsaf
空空空dafas空空空空空空dfs
空空a空b[/code]
如果上面这个例子,我用汉字“空”来代表一个空格。
我的目的不仅是要找到匹配,而且要对找到的匹配进行替换(比如在EmEditor,notepad++等这类软件中进行替换)。
对于这个例子替换后想要达到的效果是
[code]00000ab空空空dafsdsaf
000dafas空空空空空空dfs
00a空b[/code]
把每一行开头的空格替换为0:只替换每行开头的,而且要有几个空格,就替换成几个0。

[size=3][color=red][b]Thank you![/b][/color][/size]

[[i] 本帖最后由 tianlijian 于 2007-3-29 22:41 编辑 [/i]]

elkay 发表于 2007-3-29 22:48

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

mutalisker 发表于 2007-3-29 23:58

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

楼主看看这个行不

tianlijian 发表于 2007-3-30 10:47

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

楼主看看这个行不 [/quote]
这个只能实现匹配,但不能实现替换。

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 !

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.