- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这样一个字符串:
我想要这个输出:
同样,愚蠢的单引号应该转换成它们的大括号。 Read about the typographic rules here if you are interested.
我猜这个问题之前已经解决了,但我找不到库或脚本来完成它。 SmartyPants (Perl) 是执行此操作的所有库之母,并且有一个 python port .但它的输出是 HTML 实体: “但是那位先生,”
我只想要一个带有弯引号的普通字符串。有什么想法吗?
更新:
我按照 Padraig Cunningham 的建议解决了它:
HTMLParser().unescape
将 HTML 实体转换回 Unicode如果您的输入文本包含您不希望转换的 HTML 实体,这种方法可能会有问题,但在我的情况下没问题。
更新结束
输入是否可信?
目前只能信任输入。该字符串可以包含一个非闭合双引号:"But be that gentleman, looking at Dary
。它还可以包含一个非闭合单引号:'But be that gentleman, looking at Dary
。最后,它可以包含一个单引号,表示撇号:Don't go there.
我已经实现了一个试图正确关闭这些丢失的引号的算法,所以这不是问题的一部分。为了完整起见,这里是关闭丢失引号的代码:
quotationMarkDictionary = [{
'start': '"',
'end': '"',
},{
'start': '“',
'end': '”',
},{
'start': '\'',
'end': '\'',
},{
'start': '‘',
'end': '’'
},{
'start': '(',
'end': ')'
},{
'start': '{',
'end': '}'
},{
'start': '[',
'end': ']'
}]
'''If assumedSentence has quotation marks (single, double, …) and the
number of opening quotation marks is larger than the number of closing
quotation marks, append a closing quotation mark at the end of the
sentence. Likewise, add opening quotation marks to the beginning of the
sentence if there are more closing marks than opening marks.'''
for quotationMark in quotationMarkDictionary:
numberOpenings = assumedSentence['sentence'].count(quotationMark['start'])
numberClosings = assumedSentence['sentence'].count(quotationMark['end'])
# Are the opening and closing marks the same? ('Wrong' marks.) Then just make sure there is an even number of them
if quotationMark['start'] is quotationMark['end'] and numberOpenings % 2 is not 0:
# If sentence starts with this quotation mark, put the new one at the end
if assumedSentence['sentence'].startswith(quotationMark['start']):
assumedSentence['sentence'] += quotationMark['end']
else:
assumedSentence['sentence'] = quotationMark['end'] + assumedSentence['sentence']
elif numberOpenings > numberClosings:
assumedSentence['sentence'] += quotationMark['end']
elif numberOpenings < numberClosings:
assumedSentence['sentence'] = quotationMark['start'] + assumedSentence['sentence']
最佳答案
您可以使用 HTMLParser
对从 smartypants 返回的 html 实体进行转义:
In [32]: from HTMLParser import HTMLParser
In [33]: s = "“But that gentleman,”"
In [34]: print HTMLParser().unescape(s)
“But that gentleman,”
In [35]: HTMLParser().unescape(s)
Out[35]: u'\u201cBut that gentleman,\u201d'
为避免编码错误,您应该在打开文件时使用 io.open
并指定 encoding="the_encoding"
或将字符串解码为 unicode:
In [11]: s
Out[11]: '“But that gentleman,”\xe2'
In [12]: print HTMLParser().unescape(s.decode("latin-1"))
“But that gentleman,”â
关于Python:将字符串中的 "dumb quotation marks"替换为 “curly ones”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38234488/
注意:这不是库存控制系统。我只是想绘制给哪个患者服用哪种药物的 map 。我没有考虑多少药包等。只是一次用药事件 我对数据库关系突然感到困惑,即使在与他们合作多年之后也是如此。以下是我的情况。 我有一
当用 PHP 发送群发邮件时,是向每个订阅者发送一封电子邮件(对所有电子邮件地址运行一个 for 循环)更好,还是仅将密件抄送中的所有内容添加到逗号分隔的列表中,并且因此只发送一封电子邮件? 谢谢。
我不确定我是否正确地为这种类型的关系建模,也许有人可以提供一些见解来判断这是否合理: 假设我们有一个典型的亲子类型关系,其中每个 parent 都可以有很多 child ,但我们需要跟踪 parent
我有模板和模板版本。一个模板可以有多个 template_version,但在任何给定时间只有一个事件的 template_version。我有以下两个模型: class Template 'Tem
如果我的代码是这样的: if($seconds < 60) $interval = "$seconds seconds ago"; else if($seconds < 3600) $
当我创建一对一关系迁移时,laravel 创建一对多关系。 PHP 7.1 和 MySQL 5.7 模型是:角色和用户。 角色: public function user() { return
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Java Strings: “String s = new String(”silly“);” 我正在浏览一
我正在创建一个社交网络,用户可以在其中上传和发布他们的图像和视频。现在,我不知道是否最好在我的数据库中创建一个表,将其命名为 media,并有一个 media_type 列或创建单独的图像和视频表。这
有n个线程可以访问的单例类。 每个线程加载此类的实例并在循环中调用此类的方法。 我必须控制执行流程,这样每个线程都可以调用第一个方法并暂停,只有在所有线程调用该方法一次之后,才必须恢复它们的工作。线程
存在参数数量未知(动态构建)的 MySQL 查询,其格式如下: SELECT * FROM actions WHERE user1 = ? AND user10 = ? AND user11 = ?
我检查了维基百科页面,但找不到它们之间的区别,两者似乎都将多类转换为多个线性分类器。 最佳答案 这是关于分割训练数据的策略。假设您有 N 个包含 C 类的数据样本。 一对一:在这里,您一次选择 2 个
我尝试在 sql 中插入多行。但它仅插入最后一行,并且在该行中仅存储每列的第一个字符。我通过 echo 打印查询,它只显示最后一行,但给出了每列的所有字符。另一件事是我通过单击提交按钮在两个表中插入值
我有两个实体:个人和公司。一家公司有一个或多个联系人(人)。公司至少有一个主要联系人(人)。实现这一点的最佳方法是什么? 实体如下: public class Person { public
我是 iOS 开发的新手,已经开始使用 Swift。我目前正在使用包含 3 个选项卡/导航的选项卡栏导航。我应该将 UIViewController 子类化并将其用于所有 3 个场景,还是每个场景都应
我的要求是,我需要打开两个窗口,但第二个窗口必须在第一个窗口打印并关闭后打开。可能吗? 但第二个窗口与第一个窗口同时打开。 HTML/JSP 代码打印 Java脚本函数打印(id){
经过几个小时的反复试验,我找到了这个 thread其中解释了如何建立具有相同两种类型的一对多关系和一对一关系。 但是,我无法让它与级联删除一起使用: Thrown: "Unable to determ
我想验证我的表单,如果任何输入字段为空,错误警告将显示在空白输入字段旁边。对于空白输入,错误信息必须一次全部输出,而不是一一显示。如何做到这一点? 下面是我的javascript代码: fun
我有一系列这样的字体值(命令分隔一行): Yeseva+One, Yrsa, ... 我正在寻找一个 SED(或其他 bash 工具表达式)来将每个值转换为这样的行语句: --font-yeseva-
我正在研究 中的核心音频转换服务 Learning Core Audio 我对他们 sample code 中的这个例子感到震惊: while(1) { // wrap the destina
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!