Java正则表达式来标记字符串

标签 java regex

这是我的源字符串

substrb ( userenv ( 'CLIENT_INFO' ) , 1 , 1 ) , '' , null , substrb ( 'some_text'  , 1 , 10 ) 

我想将其标记为以下形式

[1] : substrb ( userenv ( 'CLIENT_INFO' ) , 1 , 1 )
[2] : ''
[3] : null
[4] : substrb ( 'some_text'  , 1 , 10 )

知道如何做吗?

谢谢

最佳答案

我建议为此编写一个解析器。您需要做的就是计算当前打开的括号的数量,如果有逗号并且计数器为 0,则剪切字符串。

类似的事情:

int openBrackets = 0;
ArrayList<String> tokens = new ArrayList<String>();
StringBuilder tmp = new StringBuilder();
for (int i = 0; i < inputString.length; ++i) {
   char cc = inputString.charAt(i);
   if (cc == '(') openBrackets++;
   else if (cc == ')') openBrackets--;
   else if ((cc == ',') && (openBrackets == 0)) {
      tokens.add(tmp.toString());
      tmp.delete(0, tmp.length());
   }
   else tmp.append(cc);
}
if (tmp.length() > 0) tokens.add(tmp.toString());

关于Java正则表达式来标记字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224782/

相关文章:

java - JFormattedTextField 未正确清除

java - TCP 按字节发送/检索 header

Java - 加载 JTabbedPane 一个又一个选项卡

regex - 如何编写正则表达式来匹配 '012356789'(无 4)

javascript - 正则表达式通过javascript从字符串中删除重复的字符

Javascript 替换匹配组

php - 过滤数字 PIN 码字符串数组,格式可能为 "######"或 "### ###"

java - 将Spring 3.1迁移到Spring 4 : org. springframework.web.context.support.ServletContextFactoryBean

JavaFX:如何监听非 UI 对象上的事件

regex - 如何使用正则表达式负匹配特定值