【发布时间】:2015-11-12 17:28:36
【问题描述】:
我回到了几个月前正在做的一个项目,当时我发现的一个问题是当我需要提取字符串的某个部分时。字符串同时使用了括号和引号,所以我不能像普通文本一样拆分它。
字符串的外观示例:
Word_Object("id"): preword:subword
现在说我只想抓取 ("id"): 之后的内容,即
'前置词:子词'
我发现 regex 帮助了我,并且花了很长时间才找到一个适用于我想要的示例。例如,我不得不安顿下来,因为我试图找到有关如何了解这个极其复杂的系统的资源,但我在这方面失败了。解决它的正则表达式如下所示:"Word_Object(\\(\"" + "id" + "\")\\): "
当时我很满意它似乎可以工作,但现在当我回到项目并尝试它时,我试图提取一个使用下划线_和下划线与以下单词的单词被遗漏了。
例如,使用正则表达式拆分文本Word_Object("id"): preword:subword_underscoreword(现在使用完整行)idSplit = subTemp.split("Word_Object(\\(\"" + "id" + "\")\\): ");将简单地返回:preword:subword而不是想要的preword:subword_underscoreword。
我是否在这个正则表达式中以某种方式指示它忽略第二个特殊字符之后的任何内容(因为它确实接受 :,但显然 _ 破坏了一切)?
【问题讨论】:
-
为什么要拆分?使用
replaceAll并用空字符串替换。 -
@stribizhev 不,您使用 groups 或 find 来提取字符串。
replaceAll和split一样合乎逻辑。 -
对于一个不太糟糕的问题,这有一个非常糟糕的标题。给你的问题一个更相关的标题可能是值得的。
-
因为a specific request by the author,我投票决定关闭它。