首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取短语中的双引号项目

提取短语中的双引号项目
EN

Stack Overflow用户
提问于 2012-04-09 20:19:25
回答 4查看 1K关注 0票数 3

我想提取输入短语内的所有双引号短语,并保持不匹配的元素作为单词

假设我有“销售人员”,我希望输出是:

代码语言:javascript
复制
sales people

  IT

input="SO \“销售经理\”营销\“管理\”“也是如此。”“

输出为:

代码语言:javascript
复制
SO
sales manager
marketing
management

if input ="SO \“销售经理\”营销管理\“保险”

输出为:

代码语言:javascript
复制
SO
sales manager
marketing
management
insurance

我找到了正则表达式:但我不知道如何提取:

代码语言:javascript
复制
string InputText="SO \"sales manager\" marketing \"management\"" ;
string pattern0 = "^\"(.*?)\"$";
string pattern = "^(.*?)\"(.*?)\"(.*?)$";
Regex regex = new Regex(pattern);
string[] temOperands;
bool isMatch = regex.IsMatch(InputText);
if (isMatch)
{
    //here goes the extraction
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-09 21:27:31

我认为你需要像"(?<word>[^"]+)"|(?<word>\w+)这样的东西。这将匹配双引号中的文本和单字:

代码语言:javascript
复制
var str = @"SO ""sales manager"" marketing hello ""management""";
var regex = new Regex(@"""(?<word>[^""]+)""|(?<word>\w+)");
var words = regex.Matches(str)
    .Cast<Match>()
    .Select(m => m.Groups["word"].Value)
    .ToArray();

对于测试字符串,这将返回:

代码语言:javascript
复制
SO
sales manager
marketing
hello
management
票数 4
EN

Stack Overflow用户

发布于 2012-04-09 21:26:16

输入字符串在双引号内只有两个单词"Sales manager“和"marketing”。下面的代码可以提取双引号内的字符串。

代码语言:javascript
复制
        ArrayList arr = new ArrayList();

        int x1 ;
        int nextPos=0;
        x1 = InputText.IndexOf('\"', 0) +1 ;
        while (x1 != -1)
        {
            if (x1 >= 0)
            { 
                nextPos = InputText.IndexOf('\"',x1);
                arr.Add(InputText.Substring(x1, nextPos - x1));
            }
            nextPos++;
            x1 = InputText.IndexOf('\"', nextPos) + 1;
        }
票数 0
EN

Stack Overflow用户

发布于 2012-04-09 20:43:07

可以使用'replace‘

代码语言:javascript
复制
string InputText="SO \"sales manager\" marketing \"management\"" ;
InputText=InputText.Replace("\"","\n");

在输出中,你将得到你想要的东西。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10073061

复制
相关文章

相似问题

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