字符串1:111-=-aaa-=-bbb-=-ccc
字符串2:2222-=-ddd-=-eeee-=-fff-=-
问题1:我想得到匹配以第1个“-=-”分界的前后字符串的正则表达式是?即$1是"-=-"左边的数字,$2是"-=-"右面的所有字符串
问题2:那么,我想得到匹配以第2个“-=-”分界的前后字符串的正则表达式是?例如字符串2的匹配结果$1为2222-=-ddd,$2为eeee-=-fff-=-
谢谢!
我不应该将例子设成前面是数字的,应该是类似于:
sl字符jfk-=-aaa-=-b求助bb-=-ccc
vn字符bm-=-dd谢谢d-=-eeee-=-fff-=-
很高兴能回答你的问题,希望我的答案能给你一定的参考:
Q1:
^\d+(?=-=-) # 匹配 -=- 前面的数字Q2:
^[^-=]*-=-[^-=]*(?=-=-) # 匹配第二个 -=- 前面的字符测试结果:
关于最后一个正则的解释:
由于 grep 无法在断言【 (?<=) 或 (?=)】 中使用不定长度的元字符【*,+,?,{n,m}】,所以不太好测试。
我暂时还没有想出判定第二个 -=- 使用定长字符的表达方法。
追问谢谢回答!
我不应该将例子设成前面是数字的,应该是类似于:
sl字符jfk-=-aaa-=-b求助bb-=-ccc
vn字符bm-=-dd谢谢d-=-eeee-=-fff-=-
结果基本不变:
Q1:
Q2:
^.*?-=-.*?(?=-=-)测试结果如下:
同样,由于 grep 不支持断言中包含不定长元字符,最后一个无法用 grep 得出测试结果,但可以参考测试正则表达式的工具: