Java Regexp для сопоставления символов ASCII

Какое регулярное выражение будет соответствовать любому символу ASCII в java?

Я уже пробовал:

^[\\p{ASCII}]*$

но обнаружил, что он не соответствует многим вещам, которые я хотел (например, пробелам, круглым скобкам и т.д.). Я надеюсь избежать явного перечисления всех 127 символов ASCII в формате, например:

^[[email protected]#$%^*(),.<>~`[]{}\\/+=-\\s]*$

Ответ 1

Я никогда не использовал \\p{ASCII}, но я использовал ^[\\u0000-\\u007F]*$

Ответ 2

Первая попытка была почти правильной

"^\\p{ASCII}*$"

Ответ 3

Для JavaScript это будет /^[\x00-\x7F]*$/.test('blah')

Ответ 4

Я думаю, вопрос о получении символов ASCII из необработанной строки, которая имеет как ASCII, так и специальные символы...

public String getOnlyASCII(String raw) {
    Pattern asciiPattern = Pattern.compile("\\p{ASCII}*$");
    Matcher matcher = asciiPattern.matcher(raw);
    String asciiString = null;
    if (matcher.find()) {
        asciiString = matcher.group();
    }
    return asciiString;
}

Вышеупомянутая программа удалит строку non ascii и вернет строку. Спасибо @Oleg Pavliv за образец.

Для ex:

raw = + 919986774157

asciiString = +919986774157