正则表达式替换所有前导字符而不是a-Z

时间:2014-01-31 20:54:36

标签: java regex

我需要在任何字母之前替换出现在开头的所有非字母字符 例如

  

$%5hello w8r ^ ld变成你好w8r ^ ld

我现在得到的这个正则表达式可以替换任何单词字符,但不会替换数字

s.replaceFirst("^[\\W_]+", "")

1 个答案:

答案 0 :(得分:5)

您使用的是错误的角色类。使用

s.replaceFirst("^[^a-zA-Z]+", "")

那是

^          start at the beginning of the string
[^  ]+     one or more (greedy - keep going until you hit a letter
a-zA-Z     ascii characters between a-z or A-Z

根据@anubhava的评论,我将*更改为+。如果没有匹配,则无需更换。它实际上更清洁。