regexp2 icon indicating copy to clipboard operation
regexp2 copied to clipboard

Can regexp2 provide the same APIs adapt to std.regexp?

Open vipally opened this issue 4 years ago • 5 comments

I wander if regexp2 can provide the same APIs adapt to std.regexp. So that I can change my rely between regexp2 & std.regexp easily by just change the expr text only.

vipally avatar Mar 17 '21 06:03 vipally

I’m assuming gostd.regexp is the go standard library regexp package.

This package isn’t designed to be a drop-in replacement for the standard library.

At first blush a conversation layer doesn’t seem too difficult so it seems like a project that requires swapping between them could write a normalization layer.

Have you tried writing this layer yourself and run into problems? Are there specific functions or concepts from regexp you want that aren’t present in regexp2?

dlclark avatar Mar 17 '21 13:03 dlclark

https://gitee.com/gxlb/gogp/blob/dev_gt/syntax.go#L52 I am doing some heavy regexp processing, what need back-reference syntax from regexp library, which is not supported by std.regexp. I found regexp2 meet all what I need.

I have try to export this APIs at https://gitee.com/gxlb/gogp/blob/dev_gt/vendor/github.com/dlclark/regexp2/regexp_api.go But failed today, I'll try latter. It will be greatfull if regexp2 directly adapt all APIs from std.regexp library.

vipally avatar Mar 17 '21 13:03 vipally

https://gitee.com/gxlb/gogp/blob/dev_gt/vendor/github.com/dlclark/regexp2/std_regexp_api.go I have sucessfully replaced std.regexp with regexp2. When I finish adapt other unused APIs, may I put a PR to regexp2 to compatibility with std.regexp APIs?

vipally avatar Mar 17 '21 17:03 vipally

Sure! Be sure to document the compatibility goal in the README and include tests.

dlclark avatar Mar 17 '21 17:03 dlclark

Here is something that I want to do on regexp2 next:

  1. [x] Add compatibility with std.regexp APIs
  2. [ ] Add coverage test cases
  3. [ ] Add examples of APIs usage

vipally avatar Mar 18 '21 01:03 vipally