【发布时间】:2013-04-13 20:16:30
【问题描述】:
我试图从以下输入中分离出单词、括号和=> 和<=>:
(<=>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)
【问题讨论】:
-
我不清楚,你期望的输出到底是什么?
-
对于输入,我想要:( A B etc
-
必须使用分隔符吗?
Patter/Matcher在这里看起来很完美。 -
谢谢,我会试试的。
-
由于
\W是否定的\w,它将 匹配(、)等等。我认为使用硬编码的<=>和其他是可以的。此外,这使您的正则表达式更具可读性。