回答
(?<=d)\d+(?=_)
應該工作(假設你正在尋找d
和_
之間的整數):
(?<=d) # Assert that the previous character is a d
\d+ # Match one or more digits
(?=_) # Assert that the following character is a _
在C#:
resultString = Regex.Match(subjectString, @"(?<=d)\d+(?=_)").Value;
請記住,預編譯的正則表達式是蛋白質的重要來源。 :) – 2011-02-04 10:18:13
優秀...感謝您的解釋! – user517406 2011-02-04 11:12:45
或者,如果你想要更多的自由,什麼可以是d和_之間:
d([^_]+)
這是
d # Match d
([^_]+) # Match (and capture) one or more characters that isn't a _
這將在dnonum_中抓取'nonum'。只有在尋求的價值可以是非數值時才能使用。 – mmix 2011-02-04 10:24:24
您還可以使用惰性限定符
d(\ d +?)_
儘管在本頁找到了正則表達式的答案可能是好的,我採用了C#方法來向你展示一個替代方案。請注意,我輸入了每一步,因此很容易閱讀和理解。
//your string
string theString = "d1048_m325";
//chars to find to cut the middle string
char firstChar = 'd';
char secondChar = '_';
//find the positions of both chars
//firstPositionOfFirstChar +1 to not include the char itself
int firstPositionOfFirstChar = theString.IndexOf(firstChar) +1;
int firstPositionOfSecondChar = theString.IndexOf(secondChar);
//the middle string will have a length of firstPositionOfSecondChar - firstPositionOfFirstChar
int middleStringLength = firstPositionOfSecondChar - firstPositionOfFirstChar;
//cut!
string middle = theString.Substring(firstPositionOfFirstChar, middleStringLength);
- 1. 2個正則表達式字符串之間的區別
- 2. Javascript正則表達式替換2個字符串之間的字符串
- 3. 2個字符串之間的字符串正則表達式c#
- 4. 字符串之間的多個字符串之間的Java正則表達式
- 5. 正則表達式兩個字符之間的字符串php
- 6. 正則表達式匹配2個字符之間的所有字符串
- 7. 獲取2個字符之間的字符串正則表達式
- 8. 正則表達式 - 在URL字符串2之間數
- 9. 階正則表達式:找到兩個字符串之間串
- 10. 正則表達式搜索2個字符串之間的可選通配符
- 11. 轉義字符之間的字符串正則表達式
- 12. 正則表達式替換字符串之間的字符
- 13. 提取兩個正則表達式之間的字符串
- 14. 兩個字符串之間的字符串的正則表達式?
- 15. php:字符串之間的正則表達式不正確
- 16. 正則表達式來選擇2個字符串之間的文本?
- 17. 正則表達式刪除2個字符串之間的所有內容
- 18. 正則表達式來拉出2個下劃線之間的字符串
- 19. Perl正則表達式,獲得兩個字符串之間的字符串
- 20. c#正則表達式捕獲兩個字符串之間的字符串
- 21. 使用正則表達式提取兩個字符串之間的字符串
- 22. php正則表達式找到兩個字符串之間的字符串
- 23. 正則表達式 - 找到兩個字符串之間的字符串PHP
- 24. 正則表達式來兩個字符串之間但重複
- 25. 正則表達式在兩個字符串之間
- 26. 正則表達式刪除分隔符之間的字符串
- 27. 正則表達式爲「>」符號之間的字符串
- 28. Perl正則表達式捕獲錨字之間的字符串
- 29. 數字與字符串之間的正則表達式
- 30. 正則表達式匹配之間的字符串列表
是否每次需要d和_之間的字符串。或者在不同情況下會有所不同? – 2011-02-04 10:13:22