作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图分离单词、括号和 =>
和 <=>
来自以下输入:
(<=>A B) OR (C AND D) AND(A AND C)
到目前为止,我只分离了单词(参见 Scanner#useDelimeter()
):
sc.useDelimeter("[^a-zA-Z]");
使用时:
sc.useDelimeter("[\\s+a-zA-Z]");
我得到的只是括号的输出。
我不想要但想要AND
)
.
我该怎么做?做\\s+
给出相同的结果。
此外,定界符与正则表达式有何不同?我熟悉 PHP 中的正则表达式。使用的符号是否相同?
我想要的输出:
(
<=>
A
(and so on)
最佳答案
您需要一个可以为零宽度的定界正则表达式(因为您有相邻项),因此环视是唯一的选择。试试这个:
sc.useDelimeter("((?<=[()>])\\s*)|(\\s*\\b\\s*)");
这个正则表达式表示“在括号之后或大于号或在单词边界处,丢弃空格”
另请注意,字符类 [\\s+a-zA-Z]
包括 +
字符 - 大多数字符在字符内部时会失去任何特殊的正则表达式含义类(class)。您似乎想说“一个或多个空格”,但这不是您的做法。
关于java - 在 Java 中使用 Scanner.useDelimeter() 来隔离表达式中的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992447/
我正在尝试解析一个看起来像的 txt 文件 A - 19 B - 2 C - 3 我正在使用扫描仪方法读取它并在“- ”中拆分,以便我的输出看起来像: A 19 B 2 C 3 但是它似乎没有正确拆分
我试图分离单词、括号和 =>和 来自以下输入: (A B) OR (C AND D) AND(A AND C) 到目前为止,我只分离了单词(参见 Scanner#useDelimeter() ): s
我是一名优秀的程序员,十分优秀!