相关疑难解决方法(0)

除非在引号中,否则正则表达式将在空格上分割

我想使用.Net Regex.Split方法将此输入字符串拆分为数组.它必须在空格上拆分,除非它包含在引号中.

输入:这是"我的字符串"它有"六个匹配"

预期产量:

  1. 这里
  2. 我的字符串
  3. 具有
  4. 六场比赛

我需要什么样的模式?我还需要指定任何RegexOptions吗?

.net c# regex

66
推荐指数
5
解决办法
4万
查看次数

正则表达式拆分字符串保留引号

我需要根据空格作为分隔符拆分下面的字符串.但是应该保留引用中的任何空格.

research library "not available" author:"Bernard Shaw"
Run Code Online (Sandbox Code Playgroud)

research
library
"not available"
author:"Bernard Shaw"
Run Code Online (Sandbox Code Playgroud)

我试图在C Sharp中做到这一点,我有这个正则表达式:@"(?<="")|\w[\w\s]*(?="")|\w+|""[\w\s]*"""来自SO中的另一个帖子,它将字符串拆分为

research
library
"not available"
author
"Bernard Shaw"
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这不符合我的确切要求.

我正在寻找任何正则表达式,这将成功.

任何帮助赞赏.

c# regex split

11
推荐指数
1
解决办法
7566
查看次数

类似Google的搜索查询标记化和字符串拆分

我希望将搜索查询标记为类似于Google的操作方式.例如,如果我有以下搜索查询:

the quick "brown fox" jumps over the "lazy dog"
Run Code Online (Sandbox Code Playgroud)

我想要一个包含以下标记的字符串数组:

the
quick
brown fox
jumps
over
the
lazy dog
Run Code Online (Sandbox Code Playgroud)

如您所见,标记用双引号保留空格.

我正在寻找一些如何在C#中执行此操作的示例,最好不使用正则表达式,但是如果这样做最有意义并且性能最高,那就这样吧.

此外,我想知道如何扩展它来处理其他特殊字符,例如,在一个术语的前面放置一个强制从搜索查询中排除等等.

c# search tokenize

9
推荐指数
1
解决办法
3424
查看次数

在/不在[]内时拆分字符串

我正在尝试拆分表示XPath的字符串,例如:

string myPath = "/myns:Node1/myns:Node2[./myns:Node3=123456]/myns:Node4";
Run Code Online (Sandbox Code Playgroud)

我需要拆分'/'('/'从结果中排除,就像正常的字符串拆分一样),除非'/'碰巧在'[...]'之内(其中'/'都不是分开,也包括在结果中).

那么正常的事情string[] result = myPath.Split("/".ToCharArray())让我:

result[0]: //Empty string, this is ok
result[1]: myns:Node1
result[2]: myns:Node2[.
result[3]: myns:Node3=123456]
result[4]: myns:Node4
Run Code Online (Sandbox Code Playgroud)

results[2]result[3]应主要结合起来,我应该结束了:

result[0]: //Empty string, this is ok
result[1]: myns:Node1
result[2]: myns:Node2[./myns:Node3=123456]
result[3]: myns:Node4
Run Code Online (Sandbox Code Playgroud)

由于我不是非常流利的正则表达式,我已经尝试在拆分后手动将结果重新组合成一个新的数组,但我担心的是,尽管让它在这个例子中起作用是微不足道的,但正则表达式似乎是更好的选择.我得到更复杂的xpaths的情况.

为了记录,我查看了以下问题:正则
表达式拆分字符串保留引号
C#Regex Split - 引号外的引号
拆分具有空格的字符串,除非它们包含在"引号"中?

虽然他们应该足以帮助解决我的问题,但我遇到了一些问题/困惑的方面,阻止他们帮助我.
在前2个链接中,作为正则表达式的新手,我发现它们难以解释和学习.他们正在寻找引用,左右对之间看起来相同,所以把它翻译成[和]让我感到困惑,试错不教我任何东西,而是让我更加沮丧.我可以理解相当基本的正则表达式,但这些答案的作用比我目前理解的要多一点,即使在第一个链接中有解释.
在第三个链接中,我将无法访问LINQ,因为代码将在旧版本的.NET中使用.

c# regex string split

5
推荐指数
2
解决办法
182
查看次数

获取句子中的单词

我有字符串 - My name is "foo bar" I live in New York

现在我想将它拆分为一个数组,但双引号中的单词应该被视为一个.

我已经尝试input.split(' ')但需要一些帮助如何处理双引号内的字符串.

我希望输出为 ['My', 'name', 'is', '"foo bar"', 'I', 'live', 'in', 'New', 'York']

javascript regex arrays

2
推荐指数
1
解决办法
73
查看次数

复杂字符串拆分C#

我有这样的输入文件:

input.txt中

aa@aa.com bb@bb.com "Information" "Hi there"
cc@cc.com dd@dd.com "Follow up" "Interview"
Run Code Online (Sandbox Code Playgroud)

我用过这个方法:

string[] words = item.Split(' ');
Run Code Online (Sandbox Code Playgroud)

但是,它会将每个单词与空格分开.我也在引号字符串中有空格但我不会拆分这些空格.

基本上我想将此输入从文件解析为此输出:

From = aa@aa.com
To = bb@bb.com
Subject = Information
Body = Hi there
Run Code Online (Sandbox Code Playgroud)

如何在C#中拆分这些字符串?

.net c# string parsing split

0
推荐指数
1
解决办法
422
查看次数

标签 统计

c# ×5

regex ×4

split ×3

.net ×2

string ×2

arrays ×1

javascript ×1

parsing ×1

search ×1

tokenize ×1