java - 将字符串中的单词拆分为数组,但如果它们位于斜杠之间则不拆分

标签 java regex string split

我有这个代码:

String path; 
path = main.getInput(); // lets say getInput() is "Hello \Wo rld\"
args = path.split("\\s+");

for (int i = 0; i < args.length; i++) {
     System.out.println(args[i]);
}

有没有一种方法可以拆分字符串,以便将单词拆分并放入数组中,但前提是它们位于两个反斜杠之间,以便“Wo rld”成为一个一个字而不是两个?

最佳答案

您可以尝试仅在后跟偶数个反斜杠的空格上进行拆分。原始正则表达式:

\s+(?=(?:[^\\]*\\[^\\]*\\)*[^\\]*$)

Java 转义正则表达式:

\\s+(?=(?:[^\\\\]*\\\\[^\\\\]*\\\\)*[^\\\\]*$)

ideone demo

关于java - 将字符串中的单词拆分为数组,但如果它们位于斜杠之间则不拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591637/

相关文章:

PHP str_replace 空格的任意组合

ruby - Ruby 中的滚动正则表达式

python - 理解是什么让这个正则表达式如此缓慢

C 函数删除字符串中的元音不起作用?

java - AdMob 应用不断崩溃

java - 新线程卡住应用

java Redis 客户端连接到多个 aws 只读副本端点?

java - 使用 Jena 获取对类的 OWL 限制

java - String Primitive/String Class 区别?

c - 使用指针连接字符串