html - Xojo 计算 HTML 中的字数 - 删除标签和其他可能影响计数的不需要的内容?
问题描述
我在计时器的动作事件中插入了一些临时的,当你输入降价时,它会将降价转换为 html。此事件将 html 放在变量 mHTML 中。
我想计算文本中的单词并将其显示在标签中。我将一个词定义为一个或多个不包含 html 标签的可打印字符。
此代码首先从变量 mHTML 中获取 html。然后我使用正则表达式删除任何标签。然后,我使用 Regex 将一个或多个行尾替换为一个空格。然后我使用 Regex 将一个或多个空格替换为一个空格。然后我从开头或结尾字符串修剪任何空格。然后我计算字符串中的空格数并加 1 以获得显示在应用程序窗口标签内的字数。
我还添加了一些代码来将我计算空格的清理文本复制到剪贴板,以检查我的代码是如何运行的。
什么是更有效的方法来做到这一点。我添加的代码上方和下方都有无法更改的代码。我添加的上述代码包括将 HTML 放入变量 mHTML 的代码。
-Code Above Here-
Dim re As New RegEx
re.SearchPattern = "<[^<>]+>"
re.ReplacementPattern = ""
re.Options.ReplaceAllMatches = True
Dim html As String = mHTML
Dim plain As String = re.Replace(html)
re.SearchPattern = "\n+"
re.ReplacementPattern = " "
re.Options.ReplaceAllMatches = True
plain = re.Replace(plain)
re.SearchPattern = "\s+"
re.ReplacementPattern = " "
re.Options.ReplaceAllMatches = True
plain = re.Replace(plain)
plain = trim(plain)
Dim MCount as Integer = CountFields(plain, " ")
Dim C as New Clipboard
C.Text = plain
Label.Text = Str(MCount + 1)
-More Code Below Here-
解决方案
我认为删除标签的过程是合理的,除非标签内的字符串中有“>”字符,但我不确定这是否允许。
您是在 macOS 或 Linux 系统上执行此操作吗?
然后,您可以尝试使用 cmdline 工具wc
通过将不带标签的文本传递给它来计算单词。使用 Shell 类调用该工具,并通过标准输入将文本传递给它,或者将文本保存到临时文件并将其路径传递给命令。但首先在终端中手动尝试该wc
命令,看看它是否能给你预期的结果。
推荐阅读
- security - SSLScan 如何确定服务器支持的密码套件列表?
- algorithm - 在矩阵中的源和目标之间建立路径所需的最小翻转
- mysql - 我应该如何修改我的触发器,以便我可以根据他们的部门获得 total_employees?
- python - Python html-requests render() 不呈现 javascript 元素
- java - 拆分后打印字符串的一部分
- c - 布尔数据类型随机整数
- mongodb - $reduce 和 $setUnion 用于 MongoDB 中的嵌套数组
- javascript - 在 Meteor 中找不到 Gijgo 字体图标
- javascript - 当 json 具有相同名称的键时,new Map() 如何在 javascript 中工作
- angular - 将数据添加到新文本框的问题