Regex любой символ ASCII

Что такое регулярное выражение, чтобы соответствовать xxx[any ASCII character here, spaces included]+xxx?

я стараюсь xxx[(\w)(\W)(\s)]+xxx, но это не похоже на работу.

7 ответов

Решение

Если вы действительно имеете в виду что- либо и ASCII (например, не все символы Юникода):

xxx[\x00-\x7F]+xxx

Пример JavaScript:

var re = /xxx[\x00-\x7F]+xxx/;

re.test('xxxabcxxx')
// true

re.test('xxx☃☃☃xxx')
// false
[ -~]

Это было видно здесь. Он соответствует всем символам ASCII от пробела до тильды.

Итак, ваша реализация будет:

xxx[ -~]+xxx

Вы можете использовать [[:ascii:]] учебный класс.

Поскольку символы US-ASCII находятся в диапазоне байтов 0x00–0x7F (0–127):

xxx[\x00-\x7F]+xxx

Принимает / соответствует только символам ASCII

/^[\x00-\x7F]*$/

Попробуйте использовать .+ вместо [(\w)(\W)(\s)]+,

Обратите внимание, что это на самом деле включает в себя больше, чем вам нужно - ASCII определяет только первые 128 символов.

В зависимости от того, что вы подразумеваете под "символом ASCII", вы можете просто попробовать:

xxx.+xxx

. обозначает любой символ, поэтому вы пишете свое регулярное выражение так:

xxx.+xxx
Другие вопросы по тегам