【问题标题】:find delimiter in split string function在拆分字符串函数中查找分隔符
【发布时间】:2012-10-24 21:51:38
【问题描述】:

我想在拆分函数调用中使用空格作为分隔符,但是我想将某些单词输入到单个元胞数组中;比如ma kore

例如:

String str =  "azx cd ma kore cfg ma kore dfgh";

在使用分隔符的函数拆分调用之后,输出应如下所示:

str[0] = "azx"  
str[1] = "cd"   
str[2] = "ma kore"  
str[3] = "cfg"  
str[4] = "ma kore"  
str[5] = "dfgh"

我需要找到一个分隔符(或正则表达式模式)以在拆分函数中使用。我该怎么做呢?

【问题讨论】:

  • 对于这个简单的案例,你可以使用环视(?<!ma) (?!kore),但是如果你有更多这些,这会变得很难看(这甚至会在makore单独出现而没有另一个) .最好在一个空格处拆分,然后遍历数组并重新组合某些字符串
  • @m.buettner - 考虑像abc ma def ghi kore jkl 这样的输入 - 你的模式行不通,对吧?
  • @Ωmega 这就是我在括号中提到的。 ;)
  • @m.buettner - 他们不会是个人比赛,而是abcma defghi korejkl
  • 也许我的措辞有点尴尬,但这正是我的意思^^

标签: java regex delimiter


【解决方案1】:

使用正则表达式

(?:^|(?<=\s))(ma kore|\S+)(?:$|(?=\s))

并找到所有匹配/出现。

【讨论】:

  • @m.buettner - OP 需要空格分隔符,\b 与包含 +-/$%# 和其他特殊字符的字符串的工作方式不同
  • @m.buettner - 哎呀,是的,) 不见了。我修好了。下一次,我的朋友,当你看到这样的错字时,请随时编辑我的帖子:) 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
相关资源
最近更新 更多