java - 角色向前看

标签 java regex-lookarounds

我将如何在 Java 中创建字符前瞻方法?我有一个文本文件(比如说 TextFile.txt),我需要它首先读取单个字符,识别它,如果它是特殊字符(如 { = + ; 等),则将其作为 Y 类型的标记返回。如果字符不是特殊的(如数字或字母),那么它应该向前查看是否有特殊字符或空格,当出现特殊字符或空格时,程序应该返回该字符集作为X 类型的 token 。如果程序读取一个数字,后跟另一个数字,然后是一个字母,则它应该只返回 Z 类型的两个数字。

例如,TextFile.txt 中有以下文本:

{ test; 123test test5
test/-=test}

程序将读取文件,看到“{”,将该标记返回为 Y,看到空格,忽略它,看到“t”,因为这不是特殊字符,向前看并看到另一个字母,直到到达“;”,并返回“test”作为 X 类型的标记。该程序应读取“123”,将其返回为 Z,然后读取“test”并返回 X。

我了解程序应该如何工作,但我不知道如何使用前瞻字符读取器。我查看了 Scanner 类,但它没有 nextChar() 方法(这很有用)。

最佳答案

我认为您实际上并不需要任何前瞻字符,只需将整个文本读入字符串并迭代其字符数组即可。检查每个字符的 isDigit 或 isLetter - 如果将其添加到字符串缓冲区,否则将缓冲区的内容刷新到包含所有标记的列表中。如果缓冲区为空并且字符是数字,请设置一个标志,并在遇到除数字之外的任何内容时立即刷新。我猜应该是这样。

关于java - 角色向前看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7971596/

相关文章:

java - 泛型类型列表的正确类型签名?

javascript - 主题标签和单词的边界正则表达式

java - 正则表达式处理零长度匹配

javascript - 将所有具有特定属性和值的 CSS 选择器与 RegEx 匹配

javascript - Javascript 正则表达式中的 "AND"...我缺少什么?

java - 私有(private)字段并重写 getter 和 setter 方法

java - 如何通过java/spring代码解析字符串URL中的URI参数?

java - Spring Websocket : How to validate message and receive clients?

java - JNA 中的 RasEnumConnections 函数返回不完整的数据。我做错了什么?

Javascript正则表达式: Second occurrence of block: ABC. js音乐符号