Regex 正则表达式任何ASCII字符
与Regex 正则表达式任何ASCII字符,regex,ascii,Regex,Ascii,与xxx[此处任何ASCII字符,包括空格]+xxx匹配的正则表达式是什么 我正在尝试xxx[(\w)(\w)(\s)]+xxx,但它似乎不起作用。如果您真正指的是任何和ASCII(不是所有Unicode字符): JavaScript示例: var re = /xxx[\x00-\x7F]+xxx/; re.test('xxxabcxxx') // true re.test('xxx☃☃☃xxx') // false 尝试使用+而不是[(\w)(\w)(\s)]+ 请注意,这实际上包含了比
xxx[此处任何ASCII字符,包括空格]+xxx
匹配的正则表达式是什么
我正在尝试xxx[(\w)(\w)(\s)]+xxx
,但它似乎不起作用。如果您真正指的是任何和ASCII(不是所有Unicode字符):
JavaScript示例:
var re = /xxx[\x00-\x7F]+xxx/;
re.test('xxxabcxxx')
// true
re.test('xxx☃☃☃xxx')
// false
尝试使用
+
而不是[(\w)(\w)(\s)]+
请注意,这实际上包含了比您需要的更多的字符-ASCII仅定义前128个字符。
代表任何字符,因此您可以这样编写正则表达式:
xxx.+xxx
根据“ASCII字符”的含义,您可以简单地尝试:
xxx.+xxx
由于US-ASCII字符在0x00–0x7F(0–127)的字节范围内:
您可以使用
[[:ascii:]
类
[ -~]
是的。它匹配从空格到波浪号的所有ASCII字符
因此,您的实施将是:
xxx[ -~]+xxx
仅接受/匹配ASCII字符
/^[\x00-\x7F]*$/
@你是我今天的英雄!出于某种原因,它不接受\x00-\x7F,但需要[:ascii:]。谢谢注意[[:ascii:]将匹配任何ascii字符,甚至是不可打印的字符,而[-~]将只匹配ascii的可打印子集。“字符类”?注意:更好的名称是“POSIX表达式”,而不是“类”。请注意,并非每种语言都支持它,例如JavaScript,也不支持它。这似乎不像我想象的那样工作。这与ascii字符的字节表示形式相匹配,而不是视觉打印/键入字符本身?@advocate,是的。你用什么语言考试?可能就是这样。哦,我希望找到一些与ASCII字符打印版本相匹配的内容:)@advocate,我想您正在寻找
^[\x20-\x7F]+$
。这是一个很好的解决方案,我见过很多不好的解决方案。我不知道正则表达式能够通过字符码过滤,优雅!这是完美的,因为在ASP.NET MVC中,接受的答案不适用于[RegularExpression]属性-它被呈现为Unicode字符,这打破了验证。非常优雅的解决方案,可读性高,语义上正是我所寻找的。@Art这不适用于使用[RegularExpression]
属性的我。。。为了让它工作,你还需要做什么特别的事情吗?我的属性只是
,但甚至不接受“asdf”。我想没关系。我刚刚意识到它只会匹配一个字符,所以我不得不添加+使其[-~]+
“任意ascii字符,一次或多次”供我使用。@Zack查看我用完整的示例代码编写的这篇文章:希望它能帮到我,如果你卡住了,请告诉我!
xxx[ -~]+xxx
/^[\x00-\x7F]*$/