python如何使用regex if测试字段内容

python如何使用regex if测试字段内容,python,regex,Python,Regex,我想测试行中某个字段的内容,以查看该字段是否包含\n。我有一个字段出现了多次\n,我正在尝试查找这些字段,并用“”或一个空的\n替换它们,但保留该字段的其余内容。字段中还有其他字符,但我特别希望删除这些字符 下面是我如何编写的,但我想知道我是否使用了最好的Python方法,以及如何测试我正在搜索的字符串值 #!/usr/bin/env python import re inFile = open('/baddatafile.txt','r') for line in inFile: d

我想测试行中某个字段的内容,以查看该字段是否包含\n。我有一个字段出现了多次\n,我正在尝试查找这些字段,并用“”或一个空的\n替换它们,但保留该字段的其余内容。字段中还有其他字符,但我特别希望删除这些字符

下面是我如何编写的,但我想知道我是否使用了最好的Python方法,以及如何测试我正在搜索的字符串值

#!/usr/bin/env python
import re

inFile = open('/baddatafile.txt','r')

for line in inFile:
   data = line.strip().split('\t')

   print 'before: %s' % (data[2])
   data[2] = re.sub(r'\n', '', data[2])
   print 'after: %s' % (data[2])
这将删除其中一个引用,但仅删除中间的引用,并且在我用作测试记录的记录中有三个引用

下面是一个示例输入记录:

<textarea cols='60' rows='8'>This \\n is my first \\nstatement one.\\n<div>
这\\n是我的第一个\\n陈述。\\n
以及我想要的示例输出:或者:

<textarea cols='60' rows='8'>This is my first statement one.<div>
这是我的第一句话。

或者:一个空字段

你能给我们显示输入数据和预期输出吗?我不完全确定你为什么不能只使用str.replace?根据定义,一行是两个换行之间的东西,包括下面的换行<代码>条带应该处理换行符,因此数据中不应该有任何换行符。。。。编辑:您发布的数据不包含任何选项卡,因此它不是真实的数据。请发布真实数据。还有,那是反斜杠-then-n,还是换行符?当你只是说
\n
时,人们会假设后者。谢谢senshin-我可能应该将示例记录数据作为代码输入。这就是您所做的更改,以使其看起来像预期的一样-无论如何,谢谢。Amadan,str.replace在本例中不适用的原因是,散布的文本是可变的,并且字符串中的换行字符数也不同。似乎re.sub适用于我试图解决的情况,但我以前从未使用过这些函数。另外,strip没有删除换行符,因为我仍然可以在strip后面的字段数据[2]中看到它们。