正则表达式模式帮助分割字符串
问题描述:
我有一个可怕的时间试图获得定义的正则表达式来拆分字符串,看起来像下面。 。 。正则表达式模式帮助分割字符串
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-9A-Za-z]的东西。
String myString = "SQL12345,54321SQL";
String[] array = myString .split(",");
答
user364939的代码不会编译。试试这个:
System.String originalString = "SQL12345,54321SQL";
System.String[] splitArray = originalString.Split(',');
System.Console.WriteLine(splitArray[0]);
System.Console.WriteLine(splitArray[1]);
警告:我测试了用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;
}
什么语言?为什么不在这个逗号上使用简单的字符串分割?这里的正则表达式似乎是矫枉过正。 – 2010-12-10 01:17:10
+1给Paul的回答。正则表达式在这里似乎是不必要的。如果你只对字符串而不是模式感兴趣,那么字符串分割应该解决这个问题。根据你的数组结构,我猜你正在使用python。是这样吗? – Gangadhar 2010-12-10 01:36:32