2014-09-19 42 views
0

我想創建一個正則表達式來根據我的位置提取字符串,然後遍歷到右側和左側,直到遇到指定的分隔符。如何創建基於位置和分隔符的正則表達式

例如,真棒DUDE是字符串,我知道一個位置說3(從開始))(E和S之間)。我想去雙方,直到我到達一個空地。

基本上我想在C#中創建一個函數,在那裏我傳遞位置和一個字符串和一個分隔符並獲取完整的字符串。所以在上面的例子中,我會傳遞'AWESOME DUDE'作爲字符串,位置爲3,分隔符爲''(空格),結果應該是'AWESOME'

PS-不想使用分割。最好是使用正則表達式,而不是字符串操作。

可行嗎?

+0

這是很不清楚你問什麼。一般來說,正則表達式在那個時候並沒有注意到它的位置(這是正則表達式的一個屬性)。對於某些情況,它可以完成。 – 2014-09-19 07:15:51

+0

您能否分享可以完成的場景?我在想,除了直接字符串處理以外是否還有其他方法 – Avenger789 2014-09-19 07:18:35

+2

你爲什麼通過第3個位置? – 2014-09-19 07:21:36

回答

1

以下正則表達式適用於grep/perl,我認爲它也適用於您的場景。你的起始位置在這裏並不重要(這意味着如果你傳遞的字符串超過2個單詞,不幸的是你會得到1個以上的輸出),它會到達雙方,直到它到達一個空間(假設空間不是更遠超過1000個字符,否則你需要調整它)。

'[\s][A-Z,a-z,0-9]{0,1000}[\s]'