问题标签 [tokenize]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
4506 浏览

parsing - 您是否曾经在现实世界的应用程序中有效地使用过词法分析器/解析器?

最近,我开始学习ANTLR。我知道词法分析器/解析器一起可以用来构建编程语言。

除了 DSL 或编程语言,您是否曾直接或间接使用词法分析器/解析器工具(和知识)来解决现实世界的问题?普通程序员是否有可能在没有词法分析器或解析器知识的情况下解决这些问题?

0 投票
12 回答
16452 浏览

python - Pythonic 实现分词器的方法

我将在 Python 中实现一个标记器,我想知道你是否可以提供一些风格建议?

我之前在 C 和 Java 中实现了一个标记器,所以我对理论很好,我只想确保我遵循 pythonic 风格和最佳实践。

列出令牌类型:

例如,在 Java 中,我会有一个字段列表,如下所示:

但是,很明显,没有办法(我认为)在 Python 中声明一个常量变量,所以我可以用普通的变量声明替换它,但这并不是一个很好的解决方案,因为声明可以改变。

从 Tokenizer 返回令牌:

有没有更好的选择来简单地返回一个元组列表,例如

干杯,

皮特

0 投票
10 回答
150187 浏览

java - Scanner vs. StringTokenizer vs. String.Split

我刚刚了解了 Java 的 Scanner 类,现在我想知道它如何与 StringTokenizer 和 String.Split 进行比较/竞争。我知道 StringTokenizer 和 String.Split 仅适用于字符串,那么我为什么要使用 Scanner 处理字符串呢?Scanner 是否只是为拆分提供一站式服务?

0 投票
3 回答
14390 浏览

ruby - 如何在 Ruby 中标记这个字符串?

我有这个字符串:

我想将其转换为将其标记为哈希数组:

我知道 StringScanner 和Syntax gem,但我找不到足够的代码示例。

任何指针?

0 投票
3 回答
441 浏览

c - 基于格式字符串的智能可变参数扩展

我有一个读取配置文件的守护程序,以便知道在哪里写东西。在配置文件中,存在这样的一行:

或者,它可能看起来像这样:

...或者只是这样:

...或者最后:

我在我的程序中将该行作为 cfg->pathfmt 。我现在要做的是想出一些巧妙的使用方法。

再解释一下,路径最多可以包含两个要格式化的组件。%d 将扩展为作业 ID (int),%s 将扩展为作业名称(字符串)。用户可能希望在配置文件中使用一个、两个或一个都不使用。在我最终将其传递给 snprintf() 之前,我需要知道他们想要什么以及按什么顺序。我可以缩小范围,但我一直想与 strtok() 交谈,这看起来很难看。

我想给用户这种灵活性,但是我迷失了寻找一种明智的、可移植的方式来实现它。我也完全不知道如何开始搜索这个。

如果出现以下情况,我会非常高兴:

  • 有人可以帮我缩小搜索词组的范围以找到好的例子
  • 有人可以发布一个链接到一些实现这个的 OSS 项目
  • 有人可以发布一些伪代码

我不想要为我编写的代码,我只是真的坚持(我认为)应该是非常简单的东西,并且需要一些帮助才能吃第一口。我真的觉得我想多了,忽略了显而易见的事情。

最终结果应该是这样的布尔函数:

然后它将在 j->outpath 上调用 snprintf()(明智地),如果某种垃圾(即 % 后跟不是 s、d 或 % 的东西)在配置行中(或其 null),则返回 false。健全性检查很容易,我只是花一点时间来获取参数的数量(和顺序)以正确格式化。

提前致谢。另外,如果您有声誉,请随时编辑此标题,正如我所说,我不太确定如何在一行中提出问题。我认为我需要的是一个解析器,但是使用成熟的词法分析器/解析器来处理一个简单的字符串感觉很尴尬。

0 投票
1 回答
1220 浏览

php - 我可以使用什么 php html 标记器?

我需要处理在我的 Web 应用程序中提交的 html,并且不想用正则表达式来处理整个事情。我应该采用什么标记器方法和/或软件?

0 投票
7 回答
7816 浏览

html - 将字符串修剪为忽略 HTML 的长度

这个问题是一个具有挑战性的问题。我们的应用程序允许用户在主页上发布新闻。该新闻是通过允许 HTML 的富文本编辑器输入的。在主页上,我们只想显示新闻项目的截断摘要。

例如,这里是我们显示的全文,包括 HTML


为了在办公室和厨房里腾出更多空间,我把所有随机的杯子都拿出来放在午餐室的桌子上。除非您对 1992 年的 Cheyenne Courier 马克杯或 1997 年的 BC Tel Advanced Communications 马克杯的所有权有强烈的感觉,否则它们将被放入一个盒子并捐赠给比我们更需要马克杯的办公室。

我们希望将新闻项修剪为 250 个字符,但不包括 HTML。

我们目前用于修剪的方法包括 HTML,这会导致一些 HTML 重的新闻帖子被大大截断。

例如,如果上面的示例包含大量 HTML,它可能看起来像这样:

为了在办公室、厨房里腾出更多空间,我拉...

这不是我们想要的。

有没有人有办法标记 HTML 标签以保持字符串中的位置,对字符串执行长度检查和/或修剪,并在其旧位置恢复字符串内的 HTML?

0 投票
9 回答
258378 浏览

java - 如何在 Java 中逐个字符地读取输入?

我习惯了 c-style getchar(),但似乎 java 没有可比性。我正在构建一个词法分析器,我需要逐个字符地读取输入。

我知道我可以使用扫描仪扫描令牌或行并逐个字符地解析令牌,但这对于跨越多行的字符串来说似乎很笨拙。有没有办法从 Java 的输入缓冲区中获取下一个字符,或者我应该直接使用 Scanner 类?

输入是文件,而不是键盘。

0 投票
3 回答
825 浏览

c# - 需要为 C# 代码构造 XML 表示

我需要将 C# 代码转换为等效的 XML 表示。
我计划将 C# 代码(C# 2.0 代码片段,无泛型或可空类型)转换为 AST,然后将 AST 转换为 XML。为 C# 寻找一个输出 AST 的简单词法分析器/解析器。
任何关于将 C# 代码转换为 XML 表示(可以转换回 C#)的指针也将非常有帮助。

亲切的问候,

0 投票
5 回答
2480 浏览

c++ - 标记并转换为猪拉丁语

这看起来像是家庭作业,但请放心,这不是家庭作业。只是我们在 c++ 课程中使用的书中的一个练习,我正在尝试提前阅读指针..

书中的练习告诉我将一个句子拆分为标记,然后将它们中的每一个转换为拉丁语然后显示它们。

这里的 pig latin 基本上是这样的:ball 在 piglatin 中变成 allboy.. boy 变成 oybay.. 取出第一个字母,放在最后,然后添加“ay”..

到目前为止,这就是我所拥有的:

我很清楚地理解了标记化部分,但我不知道如何做猪拉丁语..我试着从简单地在标记中添加“ay”开始,看看结果会是什么..不确定程序为什么会进入一个无限循环并继续显示“ayay”..有什么提示吗?

编辑:这个现在工作正常,但我不确定如何在添加“ay”之前添加令牌的第一个字母

编辑:这就是我“看到”它完成但不确定如何正确实现它的方式..