台灣最大程式設計社群網站
線上人數
1734
 
會員總數:241178
討論主題:186829
歡迎您免費加入會員
討論區列表 >> C# >> 正規化變數一問
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
正規化變數一問
價值 : 100 QP  點閱數:227 回應數:4

樓主

andyto202
初學者
362 66
3874 225
發送站內信



我註解的2行
Match m1 = Regex.Match(lines[a], "function shPAMSRouteNewNet");
Match m2 = Regex.Match(lines[a], "function shPAMSRouteNewMOD");
跑出來的結果是正常的
結果如下
shPAMSRouteNewNet
shPAMSRouteNewMOD
http://10.16.3.96/adsl/adsl_flow/ipvpn/q_pvc.asp?adsllsq=11602942&which_db=1&lnkno=100
http://10.16.3.96/adsl/adsl_flow/ipvpn/q_pvc.asp?adsllsq=11602942&which_db=1&lnkno=102
但是我把註解那2行換成
Match m1 = Regex.Match(lines[a], "function "+js_isp);
Match m2 = Regex.Match(lines[a], "function "+js_mod);
為什麼跑出來的結果就不止4行了??
雖然輸出結果的最後4行也是如上面的結果一樣
js_isp 是變數,輸出的結果也是 shPAMSRouteNewNet
js_mod 是變數,輸出的結果也是 shPAMSRouteNewMOD
請問這是為什麼呢
謝謝

搜尋相關Tags的文章: [ 正規化 ] ,
本篇文章發表於2017-07-12 18:48
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
你下中斷點在 Match m1 那邊看看,
我猜一開始執行的應該不是if而是else,

Match m1 = Regex.Match(lines[a], "function shPAMSRouteNewNet");

沒有成功所以沒有印出東西,

但是

Match m1 = Regex.Match(lines[a], "function ");

成功了,所以印出東西了。
本篇文章回覆於2017-07-12 19:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

春天
檢舉此回應
資料庫正規化
正規表示式
這種情形請下中斷點每次迴圈都看看就知道了,先把TXT的資料減少到剩五筆,四筆會輸出的加一筆不會輸出的去測
本篇文章回覆於2017-07-13 09:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

andyto202
檢舉此回應
我知道問題出在那了
但是想不到要怎麼解決
因為當文字檔的第1行進來
如果不符合 if
就會跑到 else 去
但是此時的 js_isp 和 js_mod 是空值
所以變成會抓出那些的後5行
造成結果不止4行

我這樣子的寫法
除非第一行就符合 js.Success 的條件
不然
Match m1 = Regex.Match(lines[a], "function shPAMSRouteNewNet");
Match m2 = Regex.Match(lines[a], "function shPAMSRouteNewMOD");

Match m1 = Regex.Match(lines[a], "function "+js_isp);
Match m2 = Regex.Match(lines[a], "function "+js_mod);
還是有差的

只是我用php 有解過這個問題
寫法也和c#一樣,為什麼 php 就可以呢

本篇文章回覆於2017-07-13 14:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

小魚
檢舉此回應
可以考慮加上判斷
js_isp != "" 和 js_mod != ""
如果這是你希望看到的結果的話
本篇文章回覆於2017-07-22 12:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.