Search code examples
regexpowershellcharacter-class

Why is \p{Lu} matching lowercase letters?


Lu is supposed to represent Letter, Uppercase, however I am getting unexpected results

PS > 'Hello World' -replace '\p{Lu}', 'Z'
ZZZZZ ZZZZZ

As can be seen, Lu is replacing upper and lower characters.

§ Regular Expression Category

§ Supported Categories


Solution

  • Use -creplace. -replace is case-insensitive:

    PS > 'Hello World' -creplace '\p{Lu}', 'Z'
    Zello Zorld