Regexp:为什么我的正则表达式过滤不正确?

时间:2011-07-16 13:06:51

标签: regex

我从来没有使用正则表达式,所以我有一个问题,理解为什么我的下面列出的正则表达式。不仅允许下面列出的字符:

  • A-Z& a-z(上部和下部)
  • ÅÄÖ& AAO
  • 0-9& _(下划线)

这是正则表达式:

/^[\s\da-0-9-zA-ZåäöÅÄÖ_]$/i

我做错了什么?

5 个答案:

答案 0 :(得分:1)

因为此a-0-9-z的顺序相反。使用此:^[\s\da-zA-ZåäöÅÄÖ_]$或此:(?i)^[\s\da-zåäö_]$并将ignore case选项设置为启用。

您还可以使用特殊字符\w,这意味着:letters, digits, and underscores

在正则表达式中,您使用的是\d0-9\d包括0-9,请参阅Explanation

答案 1 :(得分:0)

这里的表达是一个逐字副本吗?因为在

/^[\s\da-0-9-zA-ZåäöÅÄÖ_]$/i 

你有

a-0-9-zA-Z

你可能意味着

0-9a-zA-Z

答案 2 :(得分:0)

错误是 a-0-9-z ,应该 a-z0-9

此外,你可以丢失0-9,因为你使用\ d,你可以使用\ w作为任何“单词”字符。

答案 3 :(得分:0)

此正则表达式将匹配单个字符串,并且不区分大小写,如下所示:任何空格字符,任何数字(0-9),任何字母(a-ZA-Z)和åäöÅÄÖ_之一。

答案 4 :(得分:0)

Dunno关于拉丁语,但如果您使用0-9则不需要\d,如果您使用a-zA-Z标志,则不需要/i ,这使得一切都不区分大小写,所以你可以只留下a-z