2016-09-28 66 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)