content = 'abcdd'
import re,os,sys
def test():
print content
list = re.findall(r'[.\n]+',content)
print list
if __name__ == '__main__':
test()
我知道 '。' 表示除 '\n' 以外的任何字符
所以 [.\n] 应该代表任何字符
但结果是 []
为什么
你能帮助我吗 ?
谢谢你在avdanvce!
.
内部字符类[]
失去了“所有字符(除了换行符或不取决于标志)”的特殊含义,并且只是一个普通的句号.
。
所以[.\n]
只匹配句号.
或换行符。
如果你想匹配任何字符(无例外),一个技巧是形成一个互补字符类的字符类,例如[\s\S]
. 当语言的正则表达式不支持 DOTALL 选项时,这很有用,它可以.
匹配任何字符。
但是,由于 Python 支持 DOTALL 选项(re.DOTALL
),所以您可以使用它。
请注意,对于 Python,.
仅排除\n
. 对于其他语言,它可能会排除更多:Javascript。
得到一切:
content = 'abcdd'
import re,os,sys
def test():
print content
list = re.findall(r'.+', content, re.DOTALL)
print list
if __name__ == '__main__':
test()
结果:
>>>
abcdd
['abcdd']
你需要使用 DOTALL (这意味着.
也意味着\n
)