繁体   English   中英

正则表达式选择[AZ],但连续两个空格除外

[英]Regex Select [A-Z ] except two consecutive spaces

我一直在尝试创建一个正则表达式来匹配AZ和一个空格中的所有字母。 我希望它在超过1个连续空间时停止。 我也不希望包含破折号。 这是在基于C#的程序中作为字符串调用并返回的。 我计划在导入字符串后将其尾部裁剪成1,以删除尾部的空格(如果最终由正则表达式返回)。

TERRA MARVELLOUS LUX      -

到目前为止,我已经尝试了多种表达式,到目前为止我能想到的最好的方法是

^[A-Z (?!\s{2,})]*

以及

^[A-Z ]*(?:\s{2})

等等,我可以列出更多我一直在尝试的内容。 我很困。

^[A-Z ]+\b

您可以尝试一下。请参阅演示。

https://regex101.com/r/tJ2mW5/20

这应该可以解决您的问题:

([A-Z]+[ ]{1})+

主要思想是匹配至少具有AZ个字符的所有组,然后具有一个空格并至少匹配一次模式。

和示例: https : //regex101.com/r/tJ2mW5/21

如果您只想用连字符去除最后的空格,可以使用

 var t1 = "TERRA MARVELLOUS  LUX      -";
 var rx2 = new Regex(@"\s+\-?$");
 var res = rx2.Replace(t1, string.Empty);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM