Skip to main content
 首页 » 编程设计

c#之正则表达式:将名字、姓氏拆分为以逗号分隔的列表,例如 "john smith Jr."到 "john"、 "smith"、 "Jr."

2024年02月01日26thcjp

我正在使用 C# (asp .net),并且我有一个文本框,它接受在数据库上执行查询的名称条目。

我想使用 IN 子句获取所有可能的值,但在我的 C# 页面中我得到 1 个字符串

例如 'john smith' 所以我使用正则表达式将其分解为 'john','smith'

string text1 = "'"+Regex.Replace(text,@"[^A-Za-z0-9\-\.\']+","','")+"'"; 

但是对于像“John smith Jr.”这样的名字或 'Bruce O'Brien',它失败了(由于特殊字符)

我的正则表达式中缺少什么?

谢谢

请您参考如下方法:

正则表达式不是执行此操作的最简单方法。相反,我会推荐 String.Split method ,它通过定义单词之间的空白字符来工作:

string fullname = "Bruce O'Brien"; 
string[] names; 
Char[] separators = new Char [] {' '}; // only the space character, in this case 
 
names = fullname.Split(separators); 

获得名称数组后,如果需要的话,很容易将其转换为 csv 字符串。