我对Python原始字符串有点困惑.我知道如果我们使用原始字符串,那么它会将'\'视为正常的反斜杠(例如r'\n'将是'\'和'n').但是,我想知道如果我想匹配原始字符串中的新行字符.我试过r'\n',但它不起作用.有人对此有一些好主意吗?
我经常忘了正则表达式修饰符m和s与他们之间的分歧.什么是记住它们的好方法?
据我了解,他们是:
"m"是用于多线,以便
^和$将匹配字符串和字符串多次的结束的开始.(除以\n)'s'是这样的,即使是换行符,点也会匹配
通常,我只是使用
/some_pattern/ism
Run Code Online (Sandbox Code Playgroud)
但相应地使用它们可能更好(在我的情况下通常是"s").
你认为什么是记住它们的好方法,而不是忘记每次都是哪一个?
我知道,对于解析我理想情况下应该删除所有空格和换行符,但我只是这样做是为了快速修复我正在尝试的东西,我无法弄清楚为什么它不起作用..我已经包装了不同的文本区域使用像"#### 1"这样的包装器的文档,我试图基于此解析,但无论我尝试什么,它只是不工作,我认为我正在使用多行...任何建议表示赞赏
这根本不会返回任何结果:
string='
####1
ttteest
####1
ttttteeeestt
####2
ttest
####2'
import re
pattern = '.*?####(.*?)####'
returnmatch = re.compile(pattern, re.MULTILINE).findall(string)
return returnmatch
Run Code Online (Sandbox Code Playgroud)