2012-02-28 346 views
0

我有一個文本輸入,上面寫着匹配:正則表達式有幾個條件

打印機從就緒狀態去當滿足以下條件的工作狀態:
1.紙存在
2.連接正確
3.電源連接

如何解析此文本爲三個子分區(1.源狀態,2.目標狀態,3.條件)?

是否有可能做到這一點使用reqular表達在C#中的匹配?

+0

你可以發現「號,然後點」用正則表達式,肯定的,但如果其中一個點是什麼「有功率大於3.5 V」等?我懷疑這可能比明顯更微妙 – 2012-02-28 06:48:51

+0

你需要這些匹配:「從」和「到」之間的文本,然後從「到」和「當」,然後是「符合:」之後的文本? – 2012-02-28 06:51:24

+0

@MarcGravell [0-9] | [a-z] [。]就足以讓 – gout 2012-02-28 07:26:08

回答

3

使用下面

fromstate = Regex.Match(SubjectString, "from (.*?) state(.*?) to (.*?) state(.*?)are met:(.*)").Groups[0].Value; //from state 

tostate = Regex.Match(SubjectString, "from (.*?) state(.*?) to (.*?) state(.*?)are met:(.*)").Groups[2].Value; //to state 

conditions = Regex.Match(SubjectString, "from (.*?) state(.*?) to (.*?) state(.*?)are met:(.*)").Groups[4].Value; //conditions 
+0

的條件成立,如果在from和state之間存在更多單詞,這將不起作用。 「從目前的工作狀態」,有沒有更好的方法來匹配。 – gout 2012-02-28 07:29:05

+0

@ user1237256當您提出問題時,您沒有提供該信息。修改正則表達式來支持它。 – 2012-02-28 13:28:54

+0

提供更多測試用例 – PraveenVenu 2012-02-29 03:35:26