我用java写了一个词法分析器程序。我用空格或分号分割输入字符串,但我真正希望做的是将分号或逗号视为单独的标记,即使在它之前没有空格。
现在我有arr = (str).split("[; ]");
但是当我输入字符串为return a = 25;
时
字符串被拆分为:[return, a, =, 25]
无法识别;或者将其用作分隔符。我试图找到一个正则表达式,但我找不到一个工作。我试图避免StringTokenizer,但如果它是应该使用的东西,不能避免,请让我知道。我对正则表达式是相当陌生的,所以我无法弄清楚它。
我尝试了正则表达式((?<=;)|(?=;))
,但它只与分割;不考虑空白。
1条答案
按热度按时间fiei3ece1#
与其使用复杂、昂贵的外观和外观后面,我只使用一个词边界:
这将返回空格作为标记,但您可以很容易地删除它们:
你也可以使用splitAsStream一步完成: