Comments (6)
No problem, I'll poke around to see how easy this is.
from regexp2.
Turns out, it was pretty easy. It's based on the .NET version of the Replace function, so the replacement function MatchEvaluator
takes a full Match
instead of just a string
as input.
func (re *Regexp) ReplaceFunc(input string, evaluator MatchEvaluator, startAt, count int) (string, error)
from regexp2.
Is there a specific behavior you need?
In general the regexp2 engine uses []rune
instead of []byte
but those are much less common than just having a string, so I left those overloads out in a few places.
The existing replace function in regexp2 is:
func (re *Regexp) Replace(input, replacement string, startAt, count int) (string, error)
You can see from the example usage in replace_test.go
that it most aligns with ReplaceAllString
. That was the only replacer I needed so I stopped after implementing it.
If you need the literal version (without match expansion) or the function replacer let me know and I'll look into it.
from regexp2.
Thank you very much for answering my question!
I should've noticed that -1
for count
works as normal bulk replace. I'd use current Replace function as that.
FYI: this is a quick update I created just now for my interest, removing startAt and count. Ignore this.
https://github.com/hachi8833/regexp2/tree/replaceallstring
from regexp2.
Hello again,
After that, I found that I need 'function replacer' version of Replace function, like ReplaceAllStringFunc.
I'd be very glad if you'd kindly implement that. How about this?
from regexp2.
Thank you very much for your kindness with explanations! I'll look into it.
from regexp2.
Related Issues (20)
- Panic when trying to match `(?:){40}`
- Panics found through fuzzing HOT 2
- Infinite match loop HOT 3
- Capture.Length undefined, making FindAllString hard to implement HOT 2
- runtime error: index out of range [#number] with length 128 HOT 1
- runtime error: index out of range [<number>] with length <samenumber> HOT 4
- CPU is too high, how to reduce CPU, Pprof shows as follows HOT 1
- Can regexp2 provide the same APIs adapt to std.regexp? HOT 5
- compile failed HOT 1
- Running MatchString is slow HOT 1
- \Z not work on regexp2.RE2 mode HOT 1
- Compatibility issue with NKo Digits HOT 2
- Error while trying to match a string with a specific unicode against a RegExp that contains a space and a group HOT 3
- A bug when .* in the content to match HOT 1
- bugs in scenarios of Chinese characters or incorrect using of match.Index HOT 2
- Is it possible to get the name of the currently matched group? HOT 2
- ecmascript: cannot include class \s in character range
- error parsing regexp: unrecognized grouping construct: (?-1 HOT 1
- Support for Python-style named backreference
- Panic on 32bit architectures HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from regexp2.