【发布时间】:2012-11-21 20:33:23
【问题描述】:
我有一个正则表达式 '^[A0-Z9]+$' 一直有效,直到它到达带有句点或破折号等“特殊”字符的字符串。
列表:
UPPER
lower
UPPER lower
lower UPPER
TEST
test
UPPER2.2-1
UPPER2
给予:
UPPER
TEST
UPPER2
如何让正则表达式也忽略非字母数字字符,使其也包含 UPPER2.2-1?
我在这里有一个链接可以“实时”显示它:http://www.rubular.com/r/ev23M7G1O3
这是 MySQL 正则表达式
编辑:我没有指定我想要所有非字母数字字符(包括空格),但在其他人的帮助下,我发现了这个:'^[A-Z-0-9[:punct:][: space:]]+$' 这有什么问题吗?
【问题讨论】:
-
您是否知道
[A0-Z9]匹配任何数字、任何大写字母以及以下任何字符::;<=>=?@(因为它创建了一个从 0 到 Z 以 ASCII 顺序排列的范围)?跨度> -
更新了上面的问题,'^[A-Z-0-9[:punct:][:space:]]+$' 看起来怎么样?
-
所以你想要除了小写字母以外的所有东西?
-
@DavidRebbe,你只想要所有非空格,还是只想要所有非小写和空格?
-
我基本上是在尝试找到所有可以包含多个单词的大写字母,其中包含 " ' , . - + = 等字符。我想除了小写之外的所有内容都可以。