首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >2个字符串之间的正则表达式值

2个字符串之间的正则表达式值
EN

Stack Overflow用户
提问于 2011-02-04 18:09:12
回答 4查看 1.5K关注 0票数 0

如何获取两个字符串之间的值?我有一个格式为d1048_m325的字符串,我需要获取d和_之间的值。在C#中如何做到这一点?

谢谢,

麦克

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-04 18:11:43

代码语言:javascript
代码运行次数:0
运行
复制
(?<=d)\d+(?=_)

应该可以工作(假设您正在寻找介于d_之间的整数值):

代码语言:javascript
代码运行次数:0
运行
复制
(?<=d) # Assert that the previous character is a d
\d+    # Match one or more digits
(?=_)  # Assert that the following character is a _

在C#中:

代码语言:javascript
代码运行次数:0
运行
复制
resultString = Regex.Match(subjectString, @"(?<=d)\d+(?=_)").Value;
票数 4
EN

Stack Overflow用户

发布于 2011-02-04 18:15:46

或者,如果您希望在d和_之间有更大的自由度

代码语言:javascript
代码运行次数:0
运行
复制
d([^_]+)

这就是

代码语言:javascript
代码运行次数:0
运行
复制
d       # Match d
([^_]+) # Match  (and capture) one or more characters that isn't a _
票数 1
EN

Stack Overflow用户

发布于 2011-02-04 18:28:55

尽管在此页面上找到的正则表达式答案可能很好,但我采用了C#方法来向您展示另一种方法。请注意,我输入了每个步骤,所以它很容易阅读和理解。

代码语言:javascript
代码运行次数:0
运行
复制
//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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4896757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档