ruby-on-rails - 清理从 MS-Word 粘贴的文本

标签 ruby-on-rails ruby regex refactoring

这是我狂野而古怪的伪代码。有人知道如何实现这一点吗?

背景:

此动态内容来自 ckeditor。许多人将 Microsoft Word 内容粘贴到其中。不用担心,如果我只是调用属性不变,它会加载得很好。但问题是我希望它只有 125 个字符的缩写。当我向其中添加截断时,所有 Microsoft Word 脚本都会开始弹出。然后我添加了 simple_format、清理和截断,甚至让我的 Controller 开始找出 MS 生成的特定变量并将它们 gsub 出来。但它们太多了,而且实现这一目标的方式似乎非常困惑。如此如此!意识到这一点本身就干净了。我想,为什么不直接切片呢。但是,Microsoft Word 文本变为空白,但仍保留其在字符串中的编号位置。所以我想出了下面这个(可能很糟糕)的解决方案。

分三步。

  1. 解析文本时,不会显示任何 MSWord 垃圾。但该文本仍然在切片语句中保留数字位置。所以我想使用正则表达式来查找第一个实际字符。
  2. 获取该字符并找出其在整个字符串中的编号位置。
  3. 使用切片语句将其剪切。

    def about_us_truncated
      x = self.about_us.find.first(regExp representing first actual character)
      x.charCount = y
      self.about_us[y..125]
    end
    

我得到的唯一的其他想法是一个正则表达式语句,它允许它显式地仅对实际字符进行切片,如下所示:

about_us([a-zA-Z][0..125]) ,但这绝对不是它的写法。

以下是 MS Word 垃圾的一些示例文本:

 ≪! [If Gte Mso 9]>≪Xml>≪Br /> ≪O:Office Document Settings>≪Br /> ≪O:Allow Png/>≪Br /> ≪/O:Off...

最佳答案

您没有提供太多可引用的信息,但在寻求帮助之前,不要对尝试自己构建此正则表达式过于谨慎......

获取示例文本并将其粘贴到Rubular中在测试字符串区域并开始构建正则表达式。它的底部有一个很棒的快速引用。

关于ruby-on-rails - 清理从 MS-Word 粘贴的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3104611/

相关文章:

ruby-on-rails - ruby 语法(rails 模型)

ruby - 为什么分配给变量常量被更新

ruby - 是什么让 Rake 在 Ruby 中如此有用?

mysql - POSIX REGEX - 查找所有包含 "ONLY"特定格式字符串的行,但不包含具有附加参数的类似字符串

php - 解析来自 Yahoo! 的某些信息天气 RSS 源

ruby-on-rails - will_paginate - 关联

ruby-on-rails - 将数据库更改为 Postgres,现在 Rspec 抛出错误 : can't find object by id

mysql - 哪些工具通常使用 Ruby on Rails 开发人员来处理 MySQL 的管理

ruby-on-rails - 通过字符串引用对象属性

c# - 删除非数字、非小数、重复小数