C# 如何基于位置和分隔符创建正则表达式

C# 如何基于位置和分隔符创建正则表达式,c#,regex,C#,Regex,我想创建一个正则表达式,根据我的位置提取字符串,然后向左和向右遍历,直到遇到指定的分隔符 例如,真棒的家伙是字符串,我知道一个位置,比如说3(从),在E和S之间。我想去两边,直到我到达一个空的地方 基本上,我想在C#中创建一个函数,在这里我传递位置、字符串和分隔符,然后得到完整的字符串。所以在上面的例子中,我将传递'AWESOME DUDE'作为字符串,位置为3,分隔符为“”(空格),我的结果应该是'AWESOME' PS-不希望使用拆分。最好是正则表达式,而不是字符串操作。 可行吗 下面的正则

我想创建一个正则表达式,根据我的位置提取字符串,然后向左和向右遍历,直到遇到指定的分隔符

例如,真棒的家伙是字符串,我知道一个位置,比如说3(从),在E和S之间。我想去两边,直到我到达一个空的地方

基本上,我想在C#中创建一个函数,在这里我传递位置、字符串和分隔符,然后得到完整的字符串。所以在上面的例子中,我将传递'AWESOME DUDE'作为字符串,位置为3,分隔符为“”(空格),我的结果应该是'AWESOME'

PS-不希望使用拆分。最好是正则表达式,而不是字符串操作。


可行吗

下面的正则表达式适用于grep/perl,我认为它也适用于您的场景。您的起始位置在这里并不重要(这意味着如果您传递一个包含2个以上单词的字符串,不幸的是,您将获得1个以上的输出),它会一直传递到两侧,直到到达一个空格(假设空格距离不超过1000个字符,否则您需要调整)


你问什么很不清楚。一般来说,正则表达式忽略了它在那个时刻的位置(这是正则表达式的属性之一)。在某些情况下,这是可以做到的。请您分享一下可以做到这一点的场景好吗?我在想,除了直接的字符串操作,还有什么其他的方法,为什么你要通过位置3?这就是重点。这在很大程度上取决于规格。对于某些正则表达式,如果只允许两种类型的字符,就可以这样做,等等。没有“通用场景”@AvinashRaj:因为我实际上有一行大字。只是想知道能不能做到。。
'[\s][A-Z,a-z,0-9]{0,1000}[\s]'