2011-09-17 27 views
0

我需要使用长字符串来测试正则表达式。但是,测试字符串总是被内部引号改变,这导致整个字符串被分成多个部分,其中一些不包含在字符串中,从而发生错误。简单字符串问题 - 字符串中的单引号和双引号只是将字符串分成几部分

str1=r"row Id="7" PostTypeId="2" ParentId="4" \n 
     CreationDate="2008-07-31T22:17:57.883"\n 
     Score="49" ViewCount="0" Body="<p>An explicit cast to double i" 

你会告诉我如何解决这个问题吗?非常感谢。

+0

另外:使用正则表达式来解析HTML并不是一个好主意,尤其是在不支持递归正则表达式的Python中,以及[BeautifulSoup](http://www.crummy.com/software/BeautifulSoup/) 。 –

回答

2

使用多行字符串:

str1 = r"""row Id="7" PostTypeId="2" ParentId="4" 
      CreationDate="2008-07-31T22:17:57.883" 
      Score="49" ViewCount="0" Body="<p>An explicit cast to double i""" 

只要你的字符串不跨越多行,你也可以使用其他的引号字符:

str1 = r'row Id="7" PostTypeId="2" ParentId="4"' 

或者(如果你有两个你的字符串中的引号会被引用)(但是,正如Ned Batchelder指出的那样,你不能再使用原始字符串了):

str1 = 'row Id="7" PostTypeId=\'2\' ParentId="4"' 
+0

注意:最后一个例子不起作用,因为它是一个原始字符串(r前缀),所以反斜杠会转义撇号,但它们也包含在字符串中。 –

相关问题