C# 如何通过编号分隔字符串 (1. 2...)
我有这个字符串" 1:this 2:is 3:a​​ 4:test",想根据编号将其分开,如这样: " 1:这个" " 2:是" " 3:a" " 4:测试" 我认为这应该有正则表达方式,但不幸的是我对此不了解. this:string[] result = Regex.Split(input, @"\D+");只是在没有结肠及其背后的内容的情况下将数字拆分. 解决方案 如果您使用捕获组()这样: string[] result = Regex.Split(str, @"(\d+:)"); 捕获的值也将添加到数组中.那么剩下要做的就是将每个第一个值与每个第二个值合并(我们跳过索引0,因为它是空的): List values = new(); for (int i = 1; i
0 2024-04-16
编程技术问答社区
您可以拆分一个字符串并保持分裂字符吗?
如果这样做的话,是否有一种方法可以拆分字符串,但请保持分裂字符: "A+B+C+D+E+F+G+H".Split(new char[] { '+' }); 你得到 A B C D E F G H 是否有一种使用拆分的方法,因此可以保持分裂字符: A +B +C +D +E +F +G +H ,或者如果您要在A前面有+,则 +A +B +C +D +E +F +G +H 解决方案 您可以使用Regex.Split使用不消耗定界符字符的模式: var pattern = @"(?=\+)"; var ans = Regex.Split(src, pattern); 如果有领先+,这将创建一个空条目,因为在+>. 您可以使用linq如果不想要的空条目来删除它们: var ans2 = Regex.Split(src, pattern).Where(s => !String.IsNullOrEmpty(s)).ToArray();
0 2024-04-16
编程技术问答社区
用逗号分割字符串,忽略引号中的任何标点符号(包括',')。
我如何通过逗号分开字符串(从文本框中)不包括 double引号标记(而不会摆脱引号),以及其他可能的标点符号标记(例如'.'';'' - ')? 例如.如果有人输入以下文本框: apple, orange, "baboons, cows", rainbow, "unicorns, gummy bears" 如何将上面的字符串分为以下(例如,列为列表)? apple orange "baboons, cows" rainbow "Unicorns, gummy bears..." 谢谢您的帮助! 解决方案 您可以尝试使用正lookahead的以下等级, string value = @"apple, orange, ""baboons, cows"", rainbow, ""unicorns, gummy bears"""; string[] lines = Regex.Split(value, @", (?=(?:""[^""]*?(?:
0 2024-04-16
编程技术问答社区
如何知道在多个定界符上给字符串定界时使用的是哪个定界符?(C#)
我从文件中读取字符串,它们具有多种样式: item0 item1 item2 item0,item1,item2 item0_item1_item2 我这样拆分它们: string[] split_line = line[i].split(new char[] {' ',',','_'}); i更改项目(列),然后使用字符串构建器将字符串拼接在一起. 但是现在,将字符串放回后,我必须使用正确的定界符. 分开字符串时是否可以知道使用哪个定界符? 更新 呼叫者将传递我的第一个项目,以便我只更改该行. 解决方案 除非您继续跟踪分裂动作(当时是一个),否则您没有. 否则,您可以创建一个正则表达式,以捕获项目和定界符并从那里走. 其他解决方案 而不是传递一系列字符,您可以使用正则表达式来拆分字符串.这样做的优点是您可以捕获分裂字符. REGEX.SPLIT将插入数组中元素之间的任何捕获: string[] space = Regex.Spli
0 2024-04-16
编程技术问答社区
如何用多个分隔符分割一个字符串并保留分隔符?
我有这个字符串 "abc({" . 现在,我想通过 "(" 定界符,我知道我可以使用string.split. 但是,如果我可以用这个符号但不会丢失它,有什么办法可以拆分吗?就像我使用拆分一样,我会得到这个 string[] = { "abc" , "{" } ,我想要 { "abc" , "(" , "{" } . 还有一个方法可以使用多个定界符做到这一点? 解决方案 使用 如果在Regex.Split表达式中使用捕获括号,则在结果字符串数组中包含任何捕获的文本. 请参阅 c#demo : var s = "abc({"; var results = Regex.Split(s, @"(\()") .Where(m=>!string.IsNullOrEmpty(m)) .ToList(); Console.WriteLine(string.Join(", ", results)); // => abc, (, { (\() REGEX匹配
0 2024-04-16
编程技术问答社区
将文本分割成句子,即使是文本中存在的先生、夫人也是如此。
我有问题,我想使用Fullstop(.) 将文本分为句子 例如: MR. Bean 是英国喜剧电视连续剧,由罗恩·阿特金森(Rowan Atkinson)主演的14个半小时情节作为标题角色.不同的情节由阿特金森,罗宾·德里斯科尔,理查德·柯蒂斯和本·埃尔顿撰写. 如果我拆分上述文本,我得到了3个句子,例如 1. Mr. 2. Bean是一部英国喜剧电视连续剧,由罗恩·阿特金森(Rowan Atkinson)主演的14个半小时情节是标题角色.不同的情节由阿特金森,罗宾·德里斯科尔,理查德·柯蒂斯和本·埃尔顿撰写. 3.不同的情节是由阿特金森,罗宾·德里斯科尔,理查德·柯蒂斯和本·埃尔顿写的. . 我想在第二句话中包括 Mr. 1. Bean 先生是英国喜剧电视连续剧,由罗恩·阿特金森(Rowan Atkinson)主演的14个半小时情节为标题角色.不同的情节由阿特金森,罗宾·德里斯科尔,理查德·柯蒂斯和本·埃尔顿撰写. 2.不同的情节是由阿特金
0 2024-04-16
编程技术问答社区
如何在C#中分割一个字符串
我有一个 的字符串 "List_1 fooo asdf List_2 bar fdsa XList_3 fooo bar" 和a List喜欢 List l_lstValues = new List { "List_1", "XList_3", "List_2" }; 我需要根据l_lstValues>. 中的值拆分字符串. 因此,分裂的子字符串将就像 List_1 fooo asdf List_2 bar fdsa XList_3 fooo bar 请给我一个方法来做到这一点 预先感谢 解决方案 您必须在MSDN上使用此拆分方法,您必须将列表传递到数组中,然后您必须将其传递为拆分的参数. 我在这里留下链接 http://msdn.microsoft.com/en-us/library/tabh47cf(v=vs.90).aspx 如果要划出要分裂的单词,则必须迭代结果数组
0 2024-04-16
编程技术问答社区
使用C#将数字分成百位数、十位数和单位数
在C#? 中将一些给定数量分为数百个,数十个单位的最佳方法是什么 例如:如果我输入编号43928我如何在输出上获取40000 + 3000 + 900 + 20 + 8? 解决方案 类似的东西: long x = 43928; long i = 10; while (x > i / 10) { Console.WriteLine(x % i - x % (i / 10)); i *= 10; } 它将为您提供输出 8 20 900 3000 40000 其他解决方案 您必须使用%操作员.例子: 43928 / 10000 = 4; 43928 % 10000 = 3928; 3928 /1000 = 3; 3928 %1000 = 928, etc... 其他解决方案 Linq实施: String source = "43928"; // "40000 + 30000 + 900 + 20 + 8" Strin
0 2024-04-16
编程技术问答社区
将时间四舍五入到最接近的小时
好的,基本上我有一个正在重写文本文件并通过各种条件进行格式化的程序,其中一个条件是,我的原始文本文件中的日期和时间值需要从其当前位置删除并移至我创建了一个新列,这是在下面的代码中完成的.我使用正则表达式查找日期和时间格式,然后将其从当前位置中删除,然后将值存储在我可以稍后使用的变量中... if (line.Contains(date)) { string pattern = @"(\d{2}:\d{2}:\d{2}\s?\d{2}/\d{2}/\d{4})"; string input = line; string replacement = ""; Regex rgx = new Regex(pattern); date1 = rgx.Match(input).ToString(); string result = rgx.Replace(input, replacement); line = result; } 返回
0 2024-04-16
编程技术问答社区
匹配空间或标点和非alphanumerics的正则
我有这个正则: (\s+)|([.,!?:;'\"\'-]) 这与数组中的任何空间或标点符号相匹配,但并非全部标点符号,我正在努力找到与任何标点符号相匹配的示例. 我考虑过与角色不是alpha-numeric的位置相匹配,但是这引起了重音字母和不同词典的问题. 是否有任何包含的标点符号,例如(当我说标点符号时,我都希望包括符号): `,.#@ 等. 解决方案 您可以使用[\p{P}\p{S}]: (\s+)|([\p{P}\p{S}]) [\p{P}\p{S}]将匹配任何标点符号或符号字符的字符. 请参阅 subproperties列表这些类参考: 标点符号 属性 含义 注释 PC 标点符号,连接器 包括" _"下划线 PD 标点符号,dash 包括几个连字符 PS 标点符号,打开 打开括号字符 pe 标点符号,关闭 关闭括号字符 pi 标点符号,初始报价 开头引号标记.不包括ASCII"中性"引号.可能会
0 2024-04-16
编程技术问答社区
如何在保留行尾的情况下分割一个字符串?
我有一个文本块,我想获得其行,而不会在最后失去\ r和\ n.现在,我有以下(次优码): string[] lines = tbIn.Text.Split('\n') .Select(t => t.Replace("\r", "\r\n")).ToArray(); 所以我想知道 - 有更好的方法吗? 接受答案 string[] lines = Regex.Split(tbIn.Text, @"(?
0 2024-04-16
编程技术问答社区
如何使用C#在支架之间提取所有字符串?
如果我有一个字符串,例如: "您的ID是(1),您的号码是(0000000000)" 将这些字符串提取到字符串列表中的最佳方法是什么.支架之间的数字可以增加数字,因此搜索括号之间的字符串是一种更好的技术. 我可以使用下面的代码在括号之间提取第一个字符串. var myString = "You id is (1) and your number is (0000000000)"; var firstNumberBetweenBrackets = myString.Split('(', ')')[1]; // would return 1 解决方案 这是一个LINQ解决方案: var result = myString.Split().Where(x => x.StartsWith("(") && x.EndsWith(")")).ToList(); 存储在result中的值: result[0] = (1) result[1] = (0000
0 2024-04-15
编程技术问答社区
如何使用正则表达式分割字符串
我想将字符串拆分为列表或数组. 输入:green,"yellow,green",white,orange,"blue,black" 拆分字符是逗号(,),但必须忽略引号中的逗号. 输出应为: 绿色 黄色,绿色 白色 橙色 蓝色,黑色 谢谢. 解决方案 实际上这很容易使用匹配: string subjectString = @"green,""yellow,green"",white,orange,""blue,black"""; try { Regex regexObj = new Regex(@"(?
0 2024-04-15
编程技术问答社区
C#将字符串分为单独的变量
找到逗号时,我试图将字符串分为单独的字符串变量. string[] dates = line.Split(','); foreach (string comma in dates) { string x = // String on the left of the comma string y = // String on the right of the comma } 我需要能够为逗号每一侧的字符串创建一个字符串变量.谢谢. 在这种情况下 只是: string x = dates[0]; string y = dates[1]; 其他解决方案 只需从数组中获取字符串: string[] dates = line.Split(','); string x = dates[0]; string y = dates[1]; 如果可能有一个以上的逗号,则应指定您只需要两个字符串: string[] dates = line.Spl
0 2024-04-15
编程技术问答社区
将句子分割成单词,但在C#中遇到了标点符号的问题
我看过几个类似的问题,但我正在尝试实现这一目标. 给定一个字符串,str ="月亮是我们的天然卫星,即它在地球上旋转!" 我想提取单词并将它们存储在数组中. 预期的数组元素将是此. the moon is our natural satellite i.e. it rotates around the earth 我尝试使用string.split(','\ t','\ r'),但这无法正常工作.我还尝试删除.和其他标点符号,但我想要一个诸如" I.E."之类的字符串.也可以解析.实现这一目标的最佳方法是什么? 我还尝试使用Regex.split,但无济于事. string[] words = Regex.Split(line, @"\W+"); 肯定会朝着正确的方向欣赏一些轻推. 解决方案 正则解决方案. (\b[^\s]+\b) ,如果您真的想要在i.e.上修复最后一个.,则可以使用此. ((\b[^\s]+\
0 2024-04-14
编程技术问答社区
分割由多个空格分隔的字符串,忽略单个空格
我需要拆分一个由多个空间分开的字符串.例如: "AAAA AAA BBBB BBB BBB CCCCCCCC" 我想将其分成以下: "AAAA AAA" "BBBB BBB BBB" "CCCCCCCC" 我尝试了此代码: value2 = System.Text.RegularExpressions.Regex.Split(stringvalue, @"\s+"); 但不是成功,我只想通过多个空间而不是单个空间分开字符串. 解决方案 +意思是"一个或多个",因此单个空间将作为分隔符.如果您想多次需要一次,请使用{m,n}: value2 = System.Text.RegularExpressions.Regex.Split( stringvalue, @"\s{2,}"); {m,n}表达式需要在表达式之前立即将m与n次匹配,包括m.只需要一个限制.如果缺少上限,则表示" m或更多重复". 其他解
0 2024-04-14
编程技术问答社区
C#分割,返回数组中的键/值对
我是C#的新手,因此正在寻找外行对此的条款.本质上,我想做的就是转身: key1 = val1 | key2 = val2 | ... | keyn = valn 进入数据库阵列,您猜对了,key1返回val1,key2返回val2等.我知道我可以使用split返回字符串,但是从那时起,我茫然了.任何帮助将不胜感激!我希望我的意图很清楚,但是如果您有任何疑问,请不要犹豫! 解决方案 string s = "key1=val1|key2=val2|keyN=valN"; var dict = s.Split('|') .Select(x => x.Split('=')) .ToDictionary(x => x[0], x => x[1]); 现在dict是A Dictionary,带有所需的键/值对. 其他解决方案 Dictionary resul
0 2024-04-14
编程技术问答社区
c#string.split()大写字符串
我一直在使用Split()方法来拆分字符串.但是,如果您在string.Split()中为条件设置了一些字符,则这项工作.有什么办法可以拆分字符串,何时看到Uppercase? 是否可以从某些未分离的字符串中获得几个单词,例如: DeleteSensorFromTemplate ,结果字符串是: Delete Sensor From Template 解决方案 使用string[] split = Regex.Split(str, @"(?
0 2024-04-14
编程技术问答社区
如何将一个数组分割成n个部分?
我有一个字节列表,我想将此列表分为较小的部分. var array = new List {10, 20, 30, 40, 50, 60}; 此列表有6个单元格.例如,我想将其分为包含每个2个字节的3个部分. 我试图为循环写一些,并使用2D数组来实现我的目的,但我不知道这是正确的方法. byte[,] array2D = new byte[window, lst.Count / window]; var current = 0; for (int i = 0; i /// Splits an array into several sma
0 2024-04-14
编程技术问答社区
用'&r´n´39拆分文本。
我正在关注此 atrest 我想出了此代码: string FileName = "C:\\test.txt"; using (StreamReader sr = new StreamReader(FileName, Encoding.Default)) { string[] stringSeparators = new string[] { "\r\n" }; string text = sr.ReadToEnd(); string[] lines = text.Split(stringSeparators, StringSplitOptions.None); foreach (string s in lines) { Console.WriteLine(s); } } 这是示例文本: somet interesting text\n some text that should be in the
0 2024-04-14
编程技术问答社区