2009-02-03 35 views
1

什麼是正則表達式從否則不變管道分隔字符串

initSock|north|router\r\n 

正則表達式哪裏有時刻都在變化,但剩下的總是相同的得到一個領域。 所以它可以是:

initSock|foo|router\r\n 
initSock|bar|router\r\n 

但是,在酒吧在那裏應該肯定的東西,不能爲空。 我打算在C#中使用它。

爲了更清楚: 任何東西,看起來這是不好的:

initSock||router\r\n 
initSockfoorouter\r\n 
|foo|router\r\n 
initSock|foo|router 
initSock|foo|portal\r\n 
outSock|foo|router\r\n 
+0

需要澄清。 – 2009-02-03 16:04:52

回答

4

要擴展的M薯頭上面的回答,允許所有可能的字符我已經重寫了正則表達式爲:

"^initSock\|[^|]+\|router\\r\\n$" 

"^initSock\|[^|][^|]*\|router\\r\\n$" 

如果您不能使用擴展正則表達式。這樣你就不必確保你已經允許你使用的一組字符中的所有可能的字符匹配名稱的不同部分。

HTH

歡呼聲,

羅布

+0

OP沒有具體說明他是否想要捕獲該術語。 Potato Head先生的回覆記錄了,而你的回覆沒有。可能會對OP有用,指出這種差異。 – 2009-02-03 16:13:03

7
"^initSock\|([a-zA-Z]+)\|router\\r\\n$" 

雖然我可能會被誘惑拆就管道(「|」)字符...

+0

刪除我的信息。雖然我不確定,但你似乎已經弄清楚他比我有更好的要求了。 – user54650 2009-02-03 16:09:06