我正在读取要应用NLP的csv文件,并且正在尝试预处理数据。我从一个在线论坛收到数据,因此上面有引号。如何删除它们?作为示例;
a='[b]Re:[/b]
[quote="xxx"] How can I do that blah blah xxx [/quote]
Hello xxx, I will tell you how you can do it blah blah blah.'
我想要下面的表格;
a ='你好,xxx,我会告诉你如何做到的等等。'
我想检测到[quote =“并开始删除直到看到[/ quote]的正则表达式。这可能吗?
我已经尝试过了,但是没有用。
def quotes(text):
return re.sub('\[([^\]=]+)(?:=[^\]]+)?\].*?\[\/\\1\]', '', text)
data['message'] = data['message'].apply(quotes)
答案 0 :(得分:0)
这是一个可行的解决方案:
<FlatList
// ...
contentInset={{top: 0, bottom: 20, left: 0, right: 0}}
contentInsetAdjustmentBehavior="automatic"
// ...
/>
此打印:
<div>
<iframe src="https://player.vimeo.com/video/342787403?&autoplay=1&loop=1&title=0&byline=0&portrait=0&muted=1&#t=235s" style="position:absolute;top:0;left:0;width:100%;height:100%;" width="1400" height="900" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div>
regex模式有点冗长,但是它要做的就是匹配每组标记,例如a = '[b]Re:[/b] [quote="xxx"] How can I do that blah blah xxx [/quote] Hello xxx, I will tell you how you can do it blah blah blah.'
output = re.sub('\[([^\]=]+)(?:=[^\]]+)?\](.*?)\[\/\\1\]', '\\2', a)
print(output)
,将其删除,然后以标签内的任何内容替换。
Re: How can I do that blah blah xxx Hello xxx, I will tell you how you can do it blah blah blah.
请注意,[quote="xxx"]...[/quote]
默认情况下会进行全局替换,因此一旦我们有了一套适用于单个标签的工作模式,便可以将其应用于任何地方。
编辑:
如果您实际上想匹配并删除整个标签及其内容,请使用以下方法:
\[([^\]=]+)(?:=[^\]]+)?\] match an opening tag, and capture the tag name in \1
(.*?) match and capture in \2 all the content
\[\/\\1\] match a closing tag, using the backreference \1
此打印:
re.sub
答案 1 :(得分:0)
答案实际上太简单了
def quotes(text):
return re.sub(r'\[quote.+quote\]','',text)
data['message'] = data['message'].apply(quotes)
就是这样。