[問題] 字串中必要但非目標的內容

看板RegExp作者 (還在想)時間9年前 (2014/09/04 12:02), 9年前編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
/* 聽說註明使用的語言、環境 * 問題有可能較容易被解決... */ VS2010使用C# 各位好 我有如下的字串 ...(前略)... 606 $2lc$aFrench fiction$xTranslations into Vietnamese. 700 1$aRoy$bClaude 702 1$a? Thi? Minh Ngue?t(trans) 801 0$atw$bKML$c20140020$gAACR2$m4 805 $aA1$bMUL$pB$zMUL(VN)$d746.434041$eL735$r478$cKML4881117 ...(後略)... ?字元其實是越南文字顯示不出來 然後我想做一件事 找到700開頭的行,取出介於$a和$b中間的字(但不確定每次都會有$b,只有$a一定有) 經過程式轉換成代碼以後,存入805開頭,$e所帶著的那一串字 但$e的位置不固定,也可能根本沒有$e要自己補 不過那都是之後的事 目前是直接使用.net字串的startwith和indexof等方法分很多步撈 有想改用正規表示 試了一下 目前用 /700.{0,}\$a.{0,}\$/ 可以抓出 700 1$aRoy$ 的內容 但其實我只需要 Roy 這個字而已,其他都不需要,只是搜尋的必要條件 正規表示可以做到某些東西純粹是條件,某些東西才是真正要抓出來的結果嗎? 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.18.8 ※ 文章網址: http://www.ptt.cc/bbs/RegExp/M.1409803366.A.D3A.html ※ 編輯: Peruheru (220.134.18.8), 09/04/2014 12:07:14

09/04 12:57, , 1F
用 () 括起你要的部份, 然後程式應該會有幾個 API 可以抓出
09/04 12:57, 1F

09/04 12:58, , 2F
這種被括起來的地方 (它會寫像 sub-expression 之類的)
09/04 12:58, 2F

09/04 12:58, , 3F
至於這個 () 根據狀況有可能需要用 \( \) 你要查一下說明
09/04 12:58, 3F
感謝你的情報 /700.{0,}\$a(.{0,})\$/ 現在用這個可以在從文章內的字串中單獨提出Roy 但現在有個問題 有時候700那一串會只有$a沒有$b 可能就像 700 1$aRoy 試著如果寫成 /700.{0,}\$a(.{0,})\$?/ 的話 在沒有$b時的確抓得出來Roy 可是這樣的寫法反而在抓有$b的情況時 會抓成 Roy$bClaude 這樣的內容 好像是因為可有可無的情況會抓盡量長的資料? 這...該怎麼辦orz 自己找到解法了,在精華區內的 4-9 將語法改成 /700.{0,}\$a([^\$]*)\$?/ 就可以避免結果中含有我要切割的符號存在 感謝回答 ※ 編輯: Peruheru (220.134.18.8), 09/04/2014 15:47:41
文章代碼(AID): #1K1-Hcqw (RegExp)