2014-10-03 232 views
1

我想匹配多行(最後替換部分)Visual Studio 2013正則表達式匹配多行

我需要匹配的字符串;

[UserRightAttribute(Function.Production, Function.IOControlCustomer, Function.IOControlIAI)] 
    public Outputs Waterflow_On_Cmd { get; private set; } 

我嘗試:

(\t*\[UserRightAttribute\()(Function.Production)(.*\r\n)\t*public 

它南下時,正則表達式會嘗試\ r \ n後繼續匹配。

有人可以指出我做錯了什麼嗎?

回答

1

把你的正則表達式中的\r\n放到一個字符類中。某些文件可能包含或不包含\r回車符。

(\s*\[UserRightAttribute\()(Function\.Production)(.*[\r\n])\s*public 

OR

(\t*\[UserRightAttribute\()(Function\.Production)(.*[\r\n])\t*public 

DEMO

+0

嗨,你也試試這個在Visual Studio?它完全一樣。只要沒有指定'\ t * public',它就會匹配到行尾。一旦我指定更多它不再匹配(不知道爲什麼) – bas 2014-10-03 19:21:02

+0

是的,因爲'。*'將匹配到行的末尾。是否真的存在'\ t'?或用'\ s' – 2014-10-03 19:22:19

+0

''\ s * \ [UserRightAttribute \()(Function \ .Production)(。* [\ r \ n])\ s * public' – 2014-10-03 19:23:51