正则表达式 某两个确定字符串之间任意的东西

2014 年 11 月 10 日
 lixia625
如AAxxxBB,我要拿到xxx;
现在只知道AA(.*?)BB
但这样貌似是匹配整一个AAxxxBB?
啊好弱啊每次写正则表达式就只会自己在那瞎试,
大家有什么好的学习方法吗?
18585 次点击
所在节点    问与答
16 条回复
iEverX
2014 年 11 月 10 日
()是个group,可以取到的
python的话,m.group(1)就可以了
wolong
2014 年 11 月 10 日
替换掉AA和BB就是中间的了
lixia625
2014 年 11 月 10 日
@iEverX
java string.replaceAll呢?
coofly
2014 年 11 月 10 日
可以使用前瞻否定式,不过你这种其实没必要,用1楼的方法就挺好
besto
2014 年 11 月 10 日
字符串都确定了,还需要正则么。。。直接substring啊(AA BB的长度自己算)
lixia625
2014 年 11 月 10 日
@besto 主要不是取出,是要替换,不更改原string
besto
2014 年 11 月 10 日
@lixia625
建议还是把具体场景拿出来。
halfelf
2014 年 11 月 10 日
(?<=AA).*(?=BB)
lixia625
2014 年 11 月 10 日
@halfelf
那个小于号是啥意思,测试了下似乎报错啊。
(?=AA).*?(?=BB)这样测试了下拿到了AAxxx 好奇怪
lululau
2014 年 11 月 10 日
```
s.replaceAll("(?<=AA).*?(?=BB)", "CCC");
s.replaceAll("(AA).*?(BB)", "$1CCC$2");

```
lixia625
2014 年 11 月 10 日
@lululau
nice!!
干的漂亮
Sunyanzi
2014 年 11 月 10 日
学习方法吗 ... /t/144987 供参考 ...
lixia625
2014 年 11 月 10 日
lushl9301
2014 年 11 月 10 日
我是用perl的,括号里面表示想要匹配后保留的(算是吧)
perl用 $1 表示 = = (真是丧失 = =)
hiddenman
2014 年 11 月 11 日
@lululau 零宽断言
iimT
2017 年 2 月 7 日
js 的话用 match 方法 然后得到一个 array 其中 array[0]是包括 AA 与 BB 的 array[1]是不包括的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/145401

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX