我面临正则表达式分割问题。C#正则表达式按分隔符分割
这里是我的模式
string[] words = Regex.Split(line, "[\\s,.;:/?!()\\-]+");
这是文本文件:
ir KAS gi mus nugales.
jei! mes MIRTI NEBIJOM,
JEIGU mes nugalejom mirti
DZUKAS
而且我有个任务找上最后一句话,这里是代码:
z = words.LastOrDefault(c => c.All(ch => char.IsUpper(ch)));
当行尾是某种分隔符时,它不会打印z
。当没有分隔符(第3行,第4行)时,一切都很顺利..
为什么会发生?
您目前的代码应该输出'DZUKAS',对吧?你的意思是什么分隔符?另外,为什么不用'\ W +'分割,或者仅仅匹配'\ p {Lu} +'并且获得最后的匹配? –
@WiktorStribiżew我需要在每行中以大写字母查找单词。 DZUKAS就是其中之一,就像KAS(第一线),MIRTI(第二) – Martin
见https://ideone.com/lJQHaO –