如何解决如何不分割变音符?
我想使用以下功能从文本中提取单词并将它们放入列表中
list = re.sub("[^\w]"," ",'text hier einfügen').split()
列表的输出为:
['text','hier','einfügen']
这很好。但是,一旦我在代码中添加了iso:
# -*- coding: iso-8859-1 -*-
...它不再起作用。输出变为:
['text','hier','einf','gen']
如何避免这种情况?我需要这种iso编码,因为在HTML中,否则将无法正确打印德语文本。
其他信息(更多详细信息):
我有这样的表格:
<form action="text_ch.py" method="post" name="search"><textarea cols="50" name="comment" rows="10">Text hier einfügen...</textarea>
<input type="submit" value="Analyse"><p></p>
</form>
然后是python文件:
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import cgi
import re
form = cgi.FieldStorage()
user_text = form.getvalue('comment')
user_text_output = user_text
wordList = re.sub("[^\w]",user_text).split()
wordList = [x.lower() for x in wordList]
# HTML Ausgabe
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Title</title>'
print '<meta charset=\"utf-8\"/>'
print '</head>'
print '<body>'
print '<div style=\"width: 40%; margin: auto; border: 1px solid #333;box-shadow: 8px 8px 5px #444;padding: 8px 12px; font-family: Arial,Helvetica,sans-serif; font-size:medium; line-height:1.5;\">'
print wordList
print "</div>"
print '</body>'
print '</html>'
HMTL中的输出为:
['text','hier','einf','gen']
解决方法
不要使用[^\w]
(任何空白字符),而应使用[\s]
(任何空白字符)。
此外,使用方法re.split()
代替re.sub().split()
。这样就更简单了。
import re
lst = re.split("[\s]",'text hier einfügen')
['text','hier','einfügen']
如果您担心捕获<
,>
,/
等命令字符,那么仅在正则表达式中手动列出它们可能是最简单的-只有一个ASCII内的有效HTML控制字符的数量有限。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。