我有
String prog = "public class HelloWorld {\n" + "public static void main.(String[] args) int b = 0.5 \n"
(这是字符串中main之后的点(。)是有目的的)
在这里,我需要将字符串整体分成以下部分-
数字和。仅供参考(即1.,2.,11。)。输出必须是组件
我将split()
与\\ s +一起使用,并在符号的断言前和后看:-
(+-* / [);]。
String[] words = prog.split("\\\s+|((?<=])|(?=]))|((?<=\\[)|(?=\\[))|((?<=\\()|(?=\\())|((?<=\\))|(?=\\)))|((?<=[-+*/=;.])|(?=[-+*/=;.]))");
请原谅。任何压缩将不胜感激。
提供组件非常好,但是尝试拆分main时。分为main和。同时保持0.5不变,我使用的表达式((?<= [-+ / = ;.])|(?= [-+ / = ;.]))不起作用。
它分隔主要。分为main和。还要0.5到0和。和5
我需要0.5才能保持为0.5,即double在拆分main时保留为double。分为main和。
请向我提供一个正则表达式,以用字符串分隔句点,但完整保留双精度整数。
答案 0 :(得分:1)
通过使用具有以下模式的正式正则表达式模式匹配器,我能够接近您的预期输出:
SparseTensor
此模式与单个符号tf.math/negative
匹配,或者与非符号字符(也不是空格字符)匹配零次或多次。
[\\[\\]{}()+/*-]|[^\\s\\[\\]{}()+/*-]+
此打印:
[]{}()+/*-
请注意,解决此问题的最佳方法可能是编写某种Java解析器,该解析器可以根据需要逗弄组件。我的解决方案无法轻松在其他Java代码段上运行。
答案 1 :(得分:0)
要匹配文字点,您需要对其进行转义,因此validate
对于0.5,您可以使用
\.