2014-09-19 40 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]'