Python regex:在字符范围内包括空格
Posted
技术标签:
【中文标题】Python regex:在字符范围内包括空格【英文标题】:Python regex: Including whitespace inside character range 【发布时间】:2012-10-19 23:54:12 【问题描述】:我有一个匹配字母、数字、_ 和 - 的正则表达式(具有最小和最大长度)。
^[a-zA-Z0-9_-]3,100$
我想在这组字符中包含空格。
根据 Python 文档:
字符类,如 \w 或 \S 也可以在集合中接受。
所以我尝试了:
^[a-zA-Z0-9_-\s]3,100$
但它给出了错误的字符范围错误。如何在上述集合中包含空格?
【问题讨论】:
【参考方案1】:问题不是\s
,而是-
,它表示一个字符范围,除非它位于类的末尾或开头。使用这个:
^[a-zA-Z0-9_\s-]3,100$
【讨论】:
感谢 m.buettner。 - 的位置是问题【参考方案2】:^[-a-zA-Z0-9_\s]3,100
_-\s
被解释为一个范围。代表自身的破折号必须是 [...] 中的第一个或最后一个字符
【讨论】:
谢谢达。问题确实是 -【参考方案3】:你在正确的轨道上,添加第二个反斜杠来转义斜杠,因为反斜杠是转义字符。
^[a-zA-Z0-9_\\-\\s]3,100$
【讨论】:
很抱歉投了反对票,@david-lai。我认为这个答案不准确,因为它不能解决问题;尽管解决了报告的错误。删除你的答案可能会更好,imo。以上是关于Python regex:在字符范围内包括空格的主要内容,如果未能解决你的问题,请参考以下文章
javascript 删除所有特殊字符包括空格#regex #js
在 python 中使用 Regex 将 $$ 或更多替换为单个空格