[問題] reguler expression可以從右到左scan嗎?

看板java作者 (song)時間15年前 (2010/06/13 02:49), 編輯推噓1(108)
留言9則, 4人參與, 最新討論串1/1
大家好 我想要找 "fooxxd" form "fooxxxxfooxxd" 所以用的pattern是"foo.*d"來找 根據某大大的Java Regular Expression的學習筆記 [精華] http://0rz.tw/f01Ok 我用的是 Reluctant quantifiers 而非greedy quantifiers 但因為是從頭開始找所以還是找了較長的句子 而非較短的句子 請問有什麼方法可以解嗎? 有辦法從右往左找嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.3.165

06/13 03:55, , 1F
有regexp專版 "foo.*d"用的是greedy 何不直接用"fooxxd"
06/13 03:55, 1F

06/13 12:30, , 2F
丟入stack?
06/13 12:30, 2F

06/13 13:40, , 3F
因為xx是任意字元呀
06/13 13:40, 3F

06/13 15:58, , 4F
我猜也是 你改成Reluctant有match到嗎?
06/13 15:58, 4F

06/13 16:09, , 5F
找不到耶~ 其它語言有從右到左找的設定,但java我找不到
06/13 16:09, 5F

06/13 20:59, , 6F
不用從右往左找,把握基本規則 greedy或reluctant都能match到
06/13 20:59, 6F

06/13 21:05, , 7F
Pattern.compile(".*(foo.*?d)");
06/13 21:05, 7F

06/13 22:35, , 8F
樓上的解法看起來好像可以~我試試看
06/13 22:35, 8F

06/13 22:38, , 9F
哦哦!!樓上正是我想要的! 抓group1就可以了~感溫:)
06/13 22:38, 9F
文章代碼(AID): #1C4zR7sZ (java)