正则表达式匹配除Python中的空格外

时间:2015-10-12 01:15:09

标签: python regex

我希望在白色空间上匹配,然后除了空白之外的任何东西[即字母,标点符号]在Python的一行开头。例如:

 ` a`  = True
 ` .` = True
 `  a`  = False    [double whitespace]
 `ab` = False      [no whitespace]

规则re.match(" \w")除了标点符号外有效 - 我该如何包含?

2 个答案:

答案 0 :(得分:7)

请记住以下内容:

\s\S
  • \s是空白
  • \S是除了空白之外的一切

答案 1 :(得分:1)

import re

r = re.compile(r"(?<=^\s)[^\s]+.*")

print r.findall(" a")
print r.findall(" .")
print r.findall("  a")
print r.findall("ab")

输出:

['a']
['.']
[]
[]

正则表达式解释:

  • (?&lt; = ^ \ s) - 正向后看,匹配字符串开头的空白
  • [^ \ s] + - 重复一次或多次的任何非空白字符
  • 。* - 任何重复零次或多次的字符