日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了匹配引號之間除逗號以外的任何內容的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有此正則表達式:(?<=")(?:\.|[^"\])*(?=")

它匹配引號內的每個字符,并排除引號本身。

當我使用這樣的字符串嘗試時:

"one","two","three"

它還匹配逗號,因此匹配結果如下:

one
,
two
,
three

有沒有辦法修改正則表達式使其排除那些逗號?也就是說,輸出為:

one
two
three

我需要在正則表達式中排除那些引號,并且不在匹配結果中包含逗號。

這是我最大的正則表達式:

((0[1-9]|[12][0-9]|3[01]).(0[1-9]|1[012]).dddd)|(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])|"((?:\.|[^"\])*)"

第一部分匹配日期:dd.mm.yyyy

((0[1-9]|[12][0-9]|3[01]).(0[1-9]|1[012]).dddd)

第二部分匹配時間:hh:mm:ss

(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])

最后一個應該匹配引號之間的所有字符:

&quot;((?:.|[^&quot;])*)

但是正則表達式上的最后一部分不能以不排除引號的方式工作。此外,由于某些原因,它會刪除字符串中用引號引起來的所有空格。

輸入是包含如下字符串的文本文件:

"AK Pz 310u PI-13-5","23.02.2015","07:45:00","23.02.2015","09:20:00","False","True","23.02.2015","07:40:00","2","Common","AK Pz 310u PI-13-5","Common"

預期輸出是引號中的值數組(當然,本身不帶逗號和引號)。我之所以使用這么大的正則表達式來匹配日期和時間,是因為如果它們是錯誤的,就不應該進行匹配。

推薦答案

要使您的正則表達式不匹配逗號,您需要刪除環繞式,并使用捕獲組來獲取雙引號之間的內容。因為查找是不匹配任何字符的斷言。因此,在此"one","two","three"輸入中,首先您的正則表達式與one匹配,然后它與以下,匹配,因為雙引號中也有逗號。

"((?:\.|[^"\])*)"

此正則表達式強制匹配每個擋路雙引號字符串。

Java代碼將是

String value = ""one","two","three"";
Matcher m = Pattern.compile(""((?:\\.|[^"\\])*)"").matcher(value);
while(m.find())
{
    System.out.println(m.group(1));
}

輸出:

one
two
three

DEMO

這篇關于匹配引號之間除逗號以外的任何內容的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:內容 匹配 引號 逗號
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定