【发布时间】:2011-01-27 06:04:05
【问题描述】:
我很想使用正则表达式或简单的 Perl oneliner 从标准文本文件中删除小写句子片段。
这些通常被称为语音或归属标签,例如 - 他说,她说等。
这个例子展示了使用手动删除之前和之后:
- 原文:
“啊,完全正确!”阿辽沙叫道。
“哦,别再装傻了!一些白痴进来了,你把我们 丢人!”窗边的女孩叫道,突然转向她的父亲。 带着轻蔑和轻蔑的神情。
“等一下,瓦尔瓦拉!”父亲喊道,说话专横,但 相当赞许地看着他们。 “这就是她的性格,”他说, 再次向阿辽沙讲话。
“你去哪儿了?”他问他。
“我想,”他说,“我忘记了什么……我的手帕,我 想想....好吧,即使我什么都没忘记,让我留在 小。”
他坐了下来。父亲站在他身边。
“你也坐下,”他说。
- 手动删除所有小写句子片段:
“啊,完全正确!”
“哦,别再装傻了!一些白痴进来了,你把我们 丢人!”
“等一下,瓦尔瓦拉!” “这就是她的性格,”
“你去哪儿了?”
“我想,”“我忘记了什么……我的手帕,我 想想....好吧,即使我什么都没忘记,让我留在 小。”
他坐了下来。父亲站在他身边。
“你也坐下”
我已将直引号“更改为平衡并尝试过:” (...)+[.]
当然,这会删除一些片段,但会删除一些平衡引号中的文本和以大写字母开头的文本。 [^A-Z] 在上述表达式中不起作用。
我意识到可能无法达到 100% 的准确率,但任何有用的表达式、perl 或 python 脚本将不胜感激。
干杯,
亚伦
【问题讨论】:
-
如果不是“父亲站在他身边”,你会怎么做。句子是“父亲站在吉姆身边。”?
-
我认为您需要更清楚地定义“小写句子片段”是什么。特别是,为什么是“惊呼阿辽沙”。一个小写的句子片段,但“父亲站在他身边”。不是吗?
-
我认为“小写句子片段”的意思是“信号短语”nutsandbolts.washcoll.edu/quoting.html#signal