看板 java 關於我們 聯絡資訊
大家好 我想要找 "fooxxd" form "fooxxxxfooxxd" 所以用的pattern是"foo.*d"來找 根據某大大的Java Regular Expression的學習筆記 [精華] http://0rz.tw/f01Ok 我用的是 Reluctant quantifiers 而非greedy quantifiers 但因為是從頭開始找所以還是找了較長的句子 而非較短的句子 請問有什麼方法可以解嗎? 有辦法從右往左找嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.3.165
xlk:有regexp專版 "foo.*d"用的是greedy 何不直接用"fooxxd" 06/13 03:55
lubu:丟入stack? 06/13 12:30
zelda312:因為xx是任意字元呀 06/13 13:40
xlk:我猜也是 你改成Reluctant有match到嗎? 06/13 15:58
zelda312:找不到耶~ 其它語言有從右到左找的設定,但java我找不到 06/13 16:09
xlk:不用從右往左找,把握基本規則 greedy或reluctant都能match到 06/13 20:59
jlovet:Pattern.compile(".*(foo.*?d)"); 06/13 21:05
zelda312:樓上的解法看起來好像可以~我試試看 06/13 22:35
zelda312:哦哦!!樓上正是我想要的! 抓group1就可以了~感溫:) 06/13 22:38