我正在使用使用C#脚本的数据捕获软件(PSI-Capture)。我需要知道将捕获的值转换为字符串然后拆分为空格或换行符的最佳方法。我正在捕获一个全名字段(FirstName MiddleName Surname),有时它们在一行或两行中。所以我需要在空格和换行符上进行拆分,以便我可以在单独的字段中填充名称的每个部分。在空间或换行符上拆分
的名称是有时就像在一条线:
MICHAEL JACKSON
,有时他们就像在两行:
MICHAEL JAMES
JACKSON
我正在使用使用C#脚本的数据捕获软件(PSI-Capture)。我需要知道将捕获的值转换为字符串然后拆分为空格或换行符的最佳方法。我正在捕获一个全名字段(FirstName MiddleName Surname),有时它们在一行或两行中。所以我需要在空格和换行符上进行拆分,以便我可以在单独的字段中填充名称的每个部分。在空间或换行符上拆分
的名称是有时就像在一条线:
MICHAEL JACKSON
,有时他们就像在两行:
MICHAEL JAMES
JACKSON
这可能会为你
names = names.Replace(Environment.NewLine, " "); // as suggested by @Dmitry Bychenko
string[] nm = names.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
现在做的伎俩,如果string[] nm
包含2个元素,这意味着名字可是没有中间名所以
firstname = nm[0];
if(nm.Length > 2)
{
middlename = nm[1];
lastname = nm[2]
}
else
{
lastname = nm[1]
}
'Environment.NewLine'代替'“\ r \ n”'更精确实施 –
请将'nm.Length> = 2'更改为'nm.Length> 2'。如果'nm'包含2个元素'nm [2]'将抛出excepton。 – erikscandola
漂亮的渔获@erikscandola。完成。谢谢:) –
让nameInputText
是用户输入的,那么你可以试试以下用于获取所需的用户名部分数组:
string actualName = Regex.Replace(nameInputText, @"\r\n?|\n|\s+", "-");
string[] partsOfName = actualName.Split(new char[]{'-'}, StringSplitOptions.RemoveEmptyEntries);
在此示例中,您将获得在actualName
变量,并通过分裂基于-
意愿给你的元素所需的阵列,名称的部分
可以更换的space
string str = str.Replace(Environment.NewLine," ");
string[] array = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
使用的基础上NewLine
与space
和split
StringSplitOptions.RemoveEmptyEntries
将确保没有empty entries
保留在array
我的脚本编写技巧非常有限,因为我仍然在学习它们,我最终得到了这个,但是肯定有些问题,因为我无法工作 – Sadeb
if(dataField.Name ==“Z_Name” ) { 尝试 \t { \t string str = str.Replace(Environment.NewLine,“”); \t \t \t \t \t string [] array = str.Split(new char [] {''},StringSplitOptions.RemoveEmptyEntries); \t \t \t \t \t string actualName = Regex.Replace(Z_Name,@“\ r \ n?| \ N | \ S +”, “ - ”); \t \t \t \t \t串[] NM = actualName.Split(新的char [] { ' - '},StringSplitOptions.RemoveEmptyEntries); \t \t \t \t \t姓名=纳米[0]; \t \t \t \t \t如果(nm.Length> 2) \t \t \t \t \t \t { \t \t \t \t middlename = nm [1]; \t \t \t \t lastname = nm [2]; \t \t \t \t \t \t} \t \t \t \t \t别的 \t \t \t \t \t \t { \t \t \t \t姓氏=纳米[1]; \t \t \t \t \t \t} \t \t \t \t \t} \t \t \t \t} – Sadeb
您是否试过s.Split(new [] {'\ n','\ r','','\ t'},StringSplitOptions.RemoveEmptyEntries)? –