2016-09-28 78 views
0

我有2種字符串與「消息:」和「優先級:」和其他沒有它。如何創建正則表達式

string str1 = [AE][1W] Message:test mesage Priority:Info 
string str2 = test message 

我想準備好正則表達式來檢查字符串中是否存在「消息:」和「優先級:」。

下面不工作,

(Message:[A-Za-z]\w+ Priority:[A-Za-z])\w+ 

它應該是什麼?

+0

'\ w'只會捉*字*字符,而不是空白,所以它會找到'test',然後停止匹配。你能告訴我們更多關於你想要匹配什麼和不匹配的規則嗎?如果不是,請嘗試用'。+'替換'\ w +'。 –

回答

1

您可以將您的正則表達式更改爲:

(Message:[A-Za-z]+ \w+ Priority:[A-Za-z])\w+ 

,使其工作。不過,我會寫這樣的:

Message:(\w+[ ]?)+Priority:(\w+[ ]?)+ 

這樣MessagePriority後有可能超過1個字。

0

參考your question

string str = "[AE][1W] Message:test message Priority:Info Time:Sep 22 2016 11:59PM Tag:/System Compon/ Source:CONSOLE STATION IsAck:1 IsRtn:0 IsNew:1"; 

試試這個:

Message:([\w\s]+)Priority:([\w\s]+)Time:([\w\s:]+)Tag:([/\w\s]+)Source:([\w\s]+)IsAck:([\w\s]+)IsRtn:([\w\s]+)IsNew:([\w\s]+) 
下面

可能會更好:

Message:([\w\s]+)Priority:([\w\s]+)Time:([\w\s:]+)Tag:([/\w\s]+)Source:([\w\s]+)IsAck:(\d) IsRtn:(\d) IsNew:(\d)