![]() |
1
11
“scanner”这个名字有点误导人,因为这个词经常被用来指词法分析器,而这不是scanner的意思。它只是
另一方面,词汇分析器必须检查和分类每个字符,即使它只是决定是否可以安全地忽略它们。这意味着,在每次匹配之后,它可以应用几个模式,直到找到一个匹配的模式。 从那一点开始 .否则,它可能会找到序列“//”,并认为它找到了注释的开头,当它确实在字符串文字中,并且没有注意到开头的引号时。
当然,它实际上比这复杂得多,但我只是说明为什么像StringTokenizer这样的内置工具,
顺便说一句,这是我发现的唯一一个很好的用途
|
![]() |
2
3
如果我很好地理解您的问题,那么这里有两个标记字符串的示例方法。您甚至不需要scanner类,仅当您想要预转换标记,或者比使用数组更具逻辑性地迭代标记时才需要。如果数组足够,只需使用下面给出的string.split()。 请给出更多要求,以使答案更准确。
|
![]() |
3
2
如果这是一个简单的项目(学习事情是如何工作的),那么按照巴林特·帕托所说的去做。 如果这是一个更大的项目,考虑使用类似 JFlex 相反。有点复杂,但更快更强大。 |
![]() |
John Veridan · 在Python笔记本中仅选择列[无行] 7 年前 |
![]() |
seanysull · 修改regex以包含连字符单词 7 年前 |
![]() |
Ovaflow · 使用nltk中的标记集计算语音中的不同单词 7 年前 |
![]() |
Laurent R · 根据空格和标点符号标记,标点符号保留 7 年前 |
![]() |
mrfr · StreamTokenizer在遇到斜杠时停止 7 年前 |
![]() |
Rose · Elasticsearch:术语搜索不适用于特殊字符 7 年前 |
![]() |
vakarami · 用于提取文件名的模式标记器 7 年前 |
![]() |
Konstantin · 用Ruby将单词分解成字母 7 年前 |