2010-02-25 230 views

回答

70

只是逃避破折号,以防止它们被解释(我不认为下划线需求逃脱,但它不能伤害)。你不会说你正在使用哪个正则表达式。

([A-Za-z0-9\-\_]+) 
+0

作为一项后续行动,如何在排除期间的情况下应用上述规则?例如,我想忽略image.png – 2010-02-25 22:38:15

+4

@George:这个正则表达式已经不符合句点。 – 2010-02-25 22:45:45

+1

@George除了新的问题,请不要询问任何地方的后续问题。评论并非如此;答案并非如此;如果您有新问题,请提出一个新问题。 – 2015-03-26 15:29:46

21

你的表情应该已经匹配破折号,因为最后的 - 不会被解释为范围操作符(因为范围无结束)。要添加下划线以及尝试:

([A-Za-z0-9_-]+) 
9

根据您的正则表达式的变体,你也许可以简单地这样做:

([\w-]+) 

而且,你可能并不需要括号,除非这是一个更大的表达式的一部分。

+0

这是为一个.htaccess文件,所以我需要括号,因为如你所说,它是在一个更大的表达式:) – 2010-02-25 22:40:10

+0

这对我来说很有效,我认为它使用'word'快捷方式有点清洁。其实我用[\ w - ] * – 2013-12-05 23:17:33

0

确实可以匹配所有这些字符,但是为了避免-的字面意思很明显,这是比较安全的。

如果您使用的是POSIX variant你可以选择使用:

([[:alnum:]\-_]+)

但因为你是包括下划线我会简单地使用:

([\w\-]+)

(工程所有变种)

相关问题