我正在尝试将正则表达式定义为拆分一个类似于下面的字符串。 。
SQL12345,54321SQL
XXXXX,XXXXX
Where X = [0-9A-Za-z] and can be repeated one or more times on each side of the delimeter (,).
我提出的RegEx模式是。 。
"([0-9A-Za-z]+)(,)([0-9A-Za-z]+)"
我只想在分界仪的每一边都有一组。我似乎得到的结果看起来像。 。
myStrArr[0] = ""
myStrArr[1] = "SQL12345"
myStrArr[2] = ","
myStrArr[3] = "54321SQL"
myStrArr[4] = ""
那么,为什么我得到行开头和行结束(数组元素0和4)。而且,我如何修复我的正则表达式模式,以便我不会返回这些?
谢谢!
答案 0 :(得分:1)
user364939的代码无法编译。试试这个:
System.String originalString = "SQL12345,54321SQL";
System.String[] splitArray = originalString.Split(',');
System.Console.WriteLine(splitArray[0]);
System.Console.WriteLine(splitArray[1]);
警告:我在Snippet Compiler中使用C#对此进行了测试,但是使.NET引用变得冗长,希望它能很好地转换为托管C ++。
这是托管C ++版本:
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
String^ p = "SQL12345,54321SQL";
array<String^>^ a = p->Split(',');
Console::WriteLine(a[0]);
Console::WriteLine(a[1]);
Console::ReadLine();
return 0;
}
答案 1 :(得分:0)
Paul's answer可能是更好的解决方案。但是,如果你这样做,试试这个:
([^,]+),([^,]+)
答案 2 :(得分:-1)
我同意上面的这个家伙。除非你关心其他奇怪的字符,比如|然后你想分开任何不是[0-9A-Za-z]的东西。
String myString = "SQL12345,54321SQL";
String[] array = myString .split(",");