代码之家  ›  专栏  ›  技术社区  ›  Chris Dutrow

替换所有不在范围内的字符(Java字符串)

  •  26
  • Chris Dutrow  · 技术社区  · 15 年前

    如何替换字符串中不符合条件的所有字符。我和NOT接线员有点问题。

    String number = "703-463-9281";
    String number2 = number.replaceAll("[0-9]!", ""); // produces: "703-463-9281" (no change)
    String number3 = number.replaceAll("[0-9]", "");  // produces: "--" 
    String number4 = number.replaceAll("![0-9]", ""); // produces: "703-463-9281" (no change)
    String number6 = number.replaceAll("^[0-9]", ""); // produces: "03-463-9281"
    
    2 回复  |  直到 15 年前
        1
  •  48
  •   Rathma    9 年前

    解释:字符类开头的^将否定该类,但它必须在类内部才能起作用。字符类外的同一个字符是字符串/行开头的锚点。

    "[^0-9]"
    
        2
  •  27
  •   Community Mohan Dere    9 年前

    • [aeiou] -正好匹配一个小写元音
    • [^aeiou] -匹配的字符 小写元音( 否定 字符类)
    • ^[aeiou]
    • [^^] -匹配不是插入符号的字符/ '^'
    • ^[^^] -匹配行首不是插入符号的字符
    • ^[^.]. -匹配除文字句点以外的任何字符,后跟第行开头的“any”字符
    • [a-z] 范围 属于 'a' 'z' (即所有小写字母)
    • [az-] -匹配 ,一个 “z” '-' (文字破折号)
    • [.*]* -匹配点和星号的连续序列(可能为空)
    • [aeiou]{3}
    • \[aeiou\] -匹配字符串 "[aeiou]"

    工具书类