【发布时间】:2009-12-30 20:32:15
【问题描述】:
寻找一个匹配所有字母数字字符以及一些特殊字符(包括 + 和 -)的正则表达式字符串。我们当前的正则表达式如下所示:
^[a-zA-Z0-9_,\.\-' ]+$
但是,我们还需要包含+ 和-,只要它们的两边都没有被空格包围。例如,A+ BC 将匹配,但 A + BC 不匹配。
尝试使用单词边界但没有成功。有什么想法吗?
【问题讨论】:
-
这个问题有一些微妙的边缘情况,可以通过示例来解决。请解决以下问题:
+ABC会被视为匹配项吗?+ ABC呢?ABC +呢?- ++ -呢?- + -呢? -
下载 expresso,制作两个列表,一个应该通过的字符串,另一个应该失败的字符串。将它们一个接一个地放在示例文本面板中,然后处理您的正则表达式并使用验证按钮查看哪些匹配和不匹配,直到您获得完美的正则表达式。
-
@Asaph - 确实,这是一个微妙的边缘情况,其中任何一个字符都是列表中的第一个或最后一个字符。无论哪种情况,我们都会说,只要旁边有另一个字符,就可以。
标签: regex