2013-05-01 155 views
0

是否可以删除(包括)每个字符之前的所有字符到第三个'以及第四个'之后(包括)的所有字符,基本上隔离第三个和第四个'正则表达式 - 去除之前和之后的所有字符

例如:

a, 'something', 'ineedthistext', 'moretexthere' 

应导致

ineedthistext 
+3

正则表达式不操作字符串。他们只是匹配他们。所有使用正则表达式的字符串操作都是特定于语言的 – 2013-05-01 14:24:05

+0

为什么不使用爆炸/拆分功能? – HamZa 2013-05-01 14:24:40

+1

什么语言?如果Java,你有没有考虑过String.split? – 2013-05-01 14:24:43

回答

1

正则表达式可能不这样做(用逗号/撇号拆分实际上可能是一个更好的方法)的最佳工具,但如果你想也许正则表达式的...

,而不是之前和之后删除所有人物ineedthistext,您可以从组中捕获ineedthistext

我会使用类似:

^.*?'.*?'.*?'(.*?)'

rubular测试。

+0

我不认为你必须在这种情况下需要'+',除非你想专门排除空字符串 – 2013-05-01 14:30:08

+0

@SamIam我认为你是对的。我假设“列表”中的元素不能为空......但更好的是要小心!我会改变这一点。 – Jerry 2013-05-01 14:31:46

0

尝试

public String stringSplit(String input) { 
    String[] wordArray = input.split("'"); 
    String requiredText = wordArray[3]; 
    return requiredText; 
} 

这将工作,如果你总是想要第三和第四之间的位。

0

this answer衍生,一个可能的解决方案是:

Regex.Match(yourString, @"\('[^']*)\)").Groups[2].Value 

代码看起来嵌入式2个单引号之间的所有字符串,并将其放入组。你需要第二组。

要直接改变你的字符串,有效去除不需要的字符,你可以使用:

yourString = Regex.Match(yourString, @"\('[^']*)\)").Groups[2].Value 
相关问题