请教一个正则表达式 零宽断言?

Vim、Emacs配置和使用
回复
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

请教一个正则表达式 零宽断言?

#1

帖子 jsjcjsjc » 2016-01-16 13:35

^^^^I'm planning to study abroad ((in the near future)).##我最近计划要出国念书。##anning to study abroad ((in the near future)).##||我最近计划要出国念书。

问题1
找到^^^^之后第1个##
问题2
找到^^^^之后第2个##

如果用(?<!\^)\^\^\^\^(?!\^)(?!\|).*?\#\#就把^^^^和##之间的文字全部找到到了~~~
初学正则表达式~~是在想不到解决办法啊,谢谢各位的关注
:em01
FingerKKK
帖子: 20
注册时间: 2016-01-13 11:26
系统: Linux

Re: 请教一个正则表达式 零宽断言?

#2

帖子 FingerKKK » 2016-01-16 14:14

第一个

代码: 全选

/\(#.*\)\@<!##
第二个

代码: 全选

/\(^[^#]\+##[^#]\+\)\@<=##
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

Re: 请教一个正则表达式 零宽断言?

#3

帖子 jsjcjsjc » 2016-01-16 19:27

FingerKKK 写了:第一个

代码: 全选

/\(#.*\)\@<!##
第二个

代码: 全选

/\(^[^#]\+##[^#]\+\)\@<=##
感谢您的关注,但是我在RegexTester.exe中尝试了一下貌似不可以啊
而且这个和我说的^^^^貌似没有关系啊,我希望的结果是^^^^之后第一个##
FingerKKK
帖子: 20
注册时间: 2016-01-13 11:26
系统: Linux

Re: 请教一个正则表达式 零宽断言?

#4

帖子 FingerKKK » 2016-01-16 23:35

jsjcjsjc 写了:
FingerKKK 写了:第一个

代码: 全选

/\(#.*\)\@<!##
第二个

代码: 全选

/\(^[^#]\+##[^#]\+\)\@<=##
感谢您的关注,但是我在RegexTester.exe中尝试了一下貌似不可以啊
而且这个和我说的^^^^貌似没有关系啊,我希望的结果是^^^^之后第一个##
vim中测试,开头第一个/是vim的搜索符号,去掉才是正则。
限定^^^^加上之后就是这样。

代码: 全选

\(^\^\^\^\^.*#.*\)\@<!##

代码: 全选

\(^\^\^\^\^[^#]*##[^#]*\)\@<=##
回复