Ответ 1
Если вы действительно имеете в виду любые и ASCII (не все символы Юникода):
xxx[\x00-\x7F]+xxx
Пример JavaScript:
var re = /xxx[\x00-\x7F]+xxx/;
re.test('xxxabcxxx')
// true
re.test('xxx☃☃☃xxx')
// false
Какое регулярное выражение соответствует xxx[any ASCII character here, spaces included]+xxx
?
Я пытаюсь xxx[(\w)(\W)(\s)]+xxx
, но, похоже, это не работает.
Если вы действительно имеете в виду любые и 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
Попробуйте использовать .+
вместо [(\w)(\W)(\s)]+
.
Обратите внимание, что это фактически включает в себя больше, чем вам нужно - ASCII определяет только первые 128 символов.
.
обозначает любое char, поэтому вы пишете свое регулярное выражение следующим образом:
xxx.+xxx
В зависимости от того, что вы подразумеваете под "символом ASCII", вы можете просто попробовать:
xxx.+xxx
Принимает/сопоставляет только символы ASCII
/^[\x00-\x7F]*$/