HomePhabricator

Make `#?` work properly

Description

Make #? work properly

Summary:
Ref T6223. Two issues:

  • We don't use /u mode on these regexps. Without /u, the \w/\W/\s/\S modifiers have bad behavior on non-ASCII bytes. Add the flag to use unicode mode, making \w and \s behave like we expect.
    • We might possibly want to do something different here eventually (for example, if the /u flag has some huge performance penalty) but this seems OK for now.
  • We use \b (word boundary) to terminate the match, but ? is not a word character. Use (?!\w) instead ("don't match before a word character") which is what we mean.

Test Plan:

Screen_Shot_2014-10-01_at_12.32.53_PM.png (108×335 px, 10 KB)

Reviewers: btrahan, chad

Reviewed By: chad

Subscribers: epriestley

Maniphest Tasks: T6223

Differential Revision: https://secure.phabricator.com/D10618

Details

Provenance
epriestleyAuthored on
epriestleyPushed on Oct 1 2014, 7:45 PM
Reviewer
chad
Differential Revision
D10618: Make `#?` work properly
Parents
rP0a6473138fd6: Purge readthrough caches before applying schema adjustments
Branches
Unknown
Tags
Unknown
Tasks
T6223: ?