有什么方法可以使用Java显示除一组特定的单词或数字范围以外的所有字符和字符串?例如:
正则表达式:
^(if|else),[0-9]
输入字符串:
if x <= 7
输出:
无法识别的令牌:
x , <=
由于“
if
”和7
被否定,因此它们不会出现。我可以否定单个正则表达式中的所有字符串和数字范围吗?
还是有其他方法可以显示不匹配的字符串?
我们的任务是显示识别出的标记,然后显示不匹配的标记。我已经研究了三天的正则表达式,但仍然无法完成任务。在此先感谢您的帮助。
最佳答案
我将使用String.split()将字符串拆分为标记,然后将每个标记与“过滤器列表”进行比较。
即使您可以使用正则表达式来完成此操作,也不会像imo那样简单。
编辑:
实际上,您甚至不需要遍历结果。您可能会分裂“过滤器”字样。例如:
String[] results = s.split(" *if *| *else *| *[0-9]+ *| +");
请注意,您必须在表达式中放置一个空格,因为我假设您不希望
x <=
在结果中成为单个标记。此外,在关键字周围添加空格将确保您的结果集中不会出现空字符串。