回答
(?<=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