我正在使用使用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)? –