a n00b正则表达式

我正在做一个字符串.
而且我不知道如何与 /s匹配空格,所以我想
我会看看奥斯梅恩是否在哪里友好地告诉我我是什么
出错.
这起作用:
string = string.replace('

\ n 字段 \ n %fieldOneValue% \ n

','')
您可以看到我必须实际上放入太空角色和finefeeds
完全像它们在字符串中一样.
我尝试了这些:
string = string.replace('

\ s* 字段 \ s* %fieldonevalue% \ s*

','')
但这不起作用. Python的正则doco表明\ s
应该匹配任何包括新线在内的空格
想要,但以防万一,我也尝试过:
string = string.replace('

\ n \ s* 字段 \ n \ s* %fieldOneValue% \ n \ s*

','')
任何帮助解释为什么它们不起作用的帮助
感谢.
tia
nuffi

# 回答1


hahem ...你从哪里得到str.replace可以与之合作的想法
REGEXPS?
"""
代替(...)
S.Replace(旧,新[,count]) - 弦
返回带有所有出现的字符串s的副本
旧的取代了新.如果可选的论点计数为
给定,仅替换了第一个计数.
"""
在这里看到任何提及的Regexps? - )
的确.这与文档一致.
如果您有 * litteraly *字符串中的第一个arg! - )
那么,为什么要坚持使用re.sub的str.replace? - )
导入
pat = r'

\ s* 字段 \ s* '\
+ r'%fieldOneValue% \ s*

'
字符串= re.sub(pat,'',string)
hth

# 回答2


我尝试了这些:
来自http://docs.python.org/lib/module-re.html
"""
正则表达式使用后斜切字符(" \")指示
特殊表格或允许不使用特殊字符
调用他们的特殊含义.这与python的用法相撞
在字符串文字中具有相同目的的相同特征;
例如,要匹配字面的后卫,可能必须
将" \\\\"写为模式字符串,因为常规
表达式必须是" \\",每个后斜切必须表示为
" \\"常规python字符串文字.
解决方案是将Python的原始字符串符号用于常规
表达模式;在任何特别的地方都没有处理反斜线
以" R"前缀为前缀的字符串.所以r" \ n"是一个
包含" \"和" n"的两个字符字符串,而" \ n"是一个
一个包含新线的单字符串.通常模式会
使用此原始字符串符号在Python代码中表示.
"""
从http://docs.python.org/lib/re-syntax.html
"""
如果您不使用原始字符串来表达图案,请记住
Python还使用后斜线作为逃生序列
字符串文字;如果逃脱顺序未被识别
Python的解析器,后斜线和后续角色是
包含在结果字符串中.但是,如果py 你会的 识别结果序列,后斜切应为 重复两次. 这很复杂且难以理解,所以 强烈建议您使用所有原始字符串 最简单的表达式. """ 如果您不知道原始字符串,您可以阅读有关它们的信息 这里:http://docs.python.org/ref/strings.html -tkc

标签: python

添加新评论