gpt4 book ai didi

java - 正则表达式 - 在 `:` 上拆分字符串,但不在 if 语句内

转载 作者:行者123 更新时间:2023-11-30 07:57:43 24 4
gpt4 key购买 nike

在这个问题上,我自己无法找到解决方案。在正则表达式中甚至可能吗?

我有这个样本:

...:...:If...Then...:...:Else...:...:...:IfEnd:...

我想用冒号拆分我的字符串,而不是我的 if 语句中的冒号。

类似于:

  1. ...
  2. ...
  3. If...Then...:...:Else...:...:...:IfEnd
  4. ...

我搜索了其他问题,但它们都有 1 个字符的分隔符,您可以使用 [^set] 解决问题。 使用正则表达式可以实现这种情况吗?

我什至没有一个半工作的正则表达式解决方案,因为我尝试过的都没有用。哈哈。

如果你想知道我在做什么。我正在尝试制作一个应用程序来解析一些脚本。系统将分隔语句并单独解析每一行。但是由于显而易见的原因,分离 if 语句/while 循环/for 循环将无法正常工作。 我的解决方案思维方式是否不合常规或不正确?

最佳答案

假设您的输入没有换行符,您可以使用:

String str = "...:...:If...Then...:...:Else...:...:...:IfEnd:...";
String[] toks = str.replaceAll("(\\bIf\\b.*?\\bIfEnd\\b):?|:", "$1\n").split("\\n+");

for (String tok: toks) {
System.err.printf("%s%n", tok);
}

输出:

...
...
If...Then...:...:Else...:...:...:IfEnd
...

此正则表达式首先匹配从 IfEfEnd 的文本,并将其捕获在组 #1 中,或者它匹配一个冒号。捕获组 #1 的反向引用用于替换,同时在其前面添加 \n

RegEx Demo

关于java - 正则表达式 - 在 `:` 上拆分字符串,但不在 if 语句内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40961028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com