2017-02-06 55 views
0

我用以下文字挣扎:得到两个之间的文本“”

c(\Study:\", \"Job:\", \"Branch:\", \"Position:\", \"Naming:\", NA, NA, \"Banker\", \"VP of Sales\", \"\", NA, NA, NA, NA, NA)" 

我想从一个正则表达式来搞定,VP of Sales。其他的东西可以完全在这个地方,而不是VP of Sales

我尝试了以下,\\\"(.*?)\"它捕获所有文字,但不是VP of Sales

有什么建议吗?感谢您的回复!

+0

是你总想在第n列?它是唯一包含空格还是包含“of?”的列其他数据行是什么样的?更加详细一些。否则,我会推荐'\\\“(销售副总裁)\”' –

+0

您的输入错误。你在文字开头的'Study'之间错过了一个''' 正确的正则表达式应该是'\\\“(。*?)\\\\'' –

+0

@WesFoster代替'VP of Sales'其他事情可以正好在这个地方,我基本上想要第7列,有什么建议吗? – mrquad

回答

2

既然你想总是会在同一列中的数据,只是这样做:

/(?:, [^,]+){7}, \\\"(.*?)\\\".*/g 

基本上,这将跳过第一列(由, [^,]分隔)(号码可以在{7}改变),并在紧接着的引号中捕获数据,然后忽略其余部分。

下面是一个演示:http://www.regexpal.com/?fam=96828

+0

请注意,如果以前的字段包含逗号(例如“技术,高级”),这将失败,这似乎是合理的。不过,我怀疑用正则表达式有更好的做法。 – Aaron

+0

正确。很好,@Aaron –

相关问题