我在C#中输入了这个字符串:
string InputNames = "\"James Alkaba\", \"Carl James\", \"Thomas Merk\"";
我想用一个正则表达式来使这个字符串看起来像:James Alkaba,Carl James,Thomas Merk
。基本上是为了去掉“”和,
后面的空格。
我试过这个:
\s*""([^""]+)"""
但好像不管用
代码(现在没有使用regex,但我认为使用它可能是最好的解决方案):
public static string[] GetListOfUsers()
{
// String InputNames is loaded from a tool and it contains text "James Alkaba", "Carl James", "Thomas Merk" including the " symbol
string[] names = InputNames.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
return names;
}
我尝试在组合框中列出返回的数组:
string[] users = Common.GetListOfUsers();
cmbOwner.Items.AddRange(users);
所以当我打开组合框时,它只会列出所有的名字。
5条答案
按热度按时间0aydgbwb1#
假设名称没有
"
,您可以使用例如,使用
text
名称的 group 的模式和匹配输出
Fiddle
eivnm1vs2#
我能想到的最简单的方法就是:
其中:
\"(.+?)\"
-捕获所有在引号中的内容(非贪婪)为$1
,\\s*
-逗号(或字符串结尾)前的未捕获空格,(,|$)
-捕获逗号或字符串结尾为$2
,\\s*
-逗号(或字符串结尾)后的未捕获空格。输出量:
uujelgoq3#
如果,只是一秒钟,忘记引号或逗号或其他东西,但字母,并创建一个模式来查找2组字母,由空格分隔?
例如,
@"[A-Za-z]+\s{1}[A-Za-z]+"
,其中:[A-Za-z]+
-第一组字母,即Firstname\s{1}
-单空间分隔器[A-Za-z]+
-Lastname的第二组字母使用方法:
7cwmlq894#
正如我在注解中提到的,您只需要使用 * String.Replace * 方法。
所以你的方法会是这样的:
mefy6pfw5#
这不需要正则表达式,没有它会更容易。只需要简单地使用
.Replace()
来删除、“和。比如说,output
="James Alkaba,Carl James,Thomas Merk"