我有一個以下json
字符串,我必須過濾以獲得所謂的原始語句。正則表達式在字符串(s)內查找/包圍字符串Pattern.matches()== false
{ 「訂閱」:[ 「消息」, 「句子」, 「ANYTEXTWITHANYLENGTHHEREINCLUDINGNUMBERSDOTS; \ r \ n \」]}
的json
string
的反序列化不允許!
我做了篩選具有以下regular expression
搜索文本:
((?<=\{\"subscribe\":\[\"message\",\"sentence\",")(.*)(?=;))
或(因爲它在Java代碼進行轉義):
String pattern = "(?<=\\{\"subscribe\":\\[\"message\",\"sentence\",\")(.*)(?=;)";
這是工作完美,如果我使用Matcher.find()
並在while
聲明中重複:
while (_regexMatcher.find()) {
matches.add(_regexMatcher.group()); //Add to List<String>
}
不幸的是,整個代碼是由我們的教授給出的。他做了環繞整個代碼:
if (Pattern.matches(pattern, json)) {
...
}
由於Pattern.matches()
使用與^
模式在結束整個模式和$
的beginnen,所以它不會找到任何匹配。
是否有另一種方法獲得ANYTEXTWITHANYLENGTHHEREUDNNMBUMBERSDOTS因此Pattern.matches()
返回true?
是JSON故意還是錯字? – nafas
如果除了期望的字符串之外,您始終確定您的僞'JSON'的其餘部分的格式,那麼似乎最簡單的解決方案可能涉及使用'.split(「/」「)'和/或'.split(「,」)' –