Bug 7674 – regex replace requires escaped format

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-03-08T14:10:00Z
Last change time
2012-03-22T14:02:20Z
Assigned to
nobody
Creator
Jesse.K.Phillips+D

Comments

Comment #0 by Jesse.K.Phillips+D — 2012-03-08T14:10:44Z
When using std.regex.replace the format parameter is also requiring to be a valid regex. The below example is expected to pass import std.regex; void main() { auto str = "hello?"; assert(str.replace(regex(r"\?", "g"), r"\?") == r"hello\?"); } This should fail: import std.regex; void main() { auto str = "hello?"; assert(str.replace(regex(r"\?", "g"), r"\\?") != r"hello\?"); } Maybe I'm wrong on this, but the current requirement seems off.
Comment #1 by dmitry.olsh — 2012-03-09T03:30:45Z
(In reply to comment #0) > When using std.regex.replace the format parameter is also requiring to be a > valid regex. Strange. But speaking of format string it is expected to be a plain string there is no need to escape a thing in there IRC. The below example is expected to pass > > import std.regex; > > void main() { > auto str = "hello?"; > > assert(str.replace(regex(r"\?", "g"), r"\?") == r"hello\?"); > } > > This should fail: > > import std.regex; > > void main() { > auto str = "hello?"; > > assert(str.replace(regex(r"\?", "g"), r"\\?") != r"hello\?"); > } > > Maybe I'm wrong on this, but the current requirement seems off. Apparently it is, I'll take a look.
Comment #2 by github-bugzilla — 2012-03-17T11:04:23Z
Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/097faaca84b0d8f4031cc56721ec846ff4bd6a6e fix Issue 7674 - regex replace requires escaped format Kill unnecessary escaping in replace format string. https://github.com/D-Programming-Language/phobos/commit/bdaa3260ffe62237d7360e84f8e6f01b30e4ab54 changelog entry for issue 7674 https://github.com/D-Programming-Language/phobos/commit/55debbccd020059aec0764cbcbd1773c3a85fe73 Merge pull request #492 from blackwhale/issue-7674 Issue 7674 - regex replace requires escaped format