获取字符串中第一个非Alpha字符的索引
本文关键字:字符 索引 Alpha 字符串 第一个 获取 | 更新日期: 2023-09-27 18:18:48
每当我找到第一个非alpha或空白时,我就试图拆分字符串(在索引处)。
我的Regex是真的生锈了,并试图找到一些方向,让这个工作。
示例:"Payments Received by 08/14/2015 $0.00"是字符串。我可以找到第一个数字
string alphabet = String.Empty;
string digit = String.Empty;
int digitStartIndex;
Match regexMatch = Regex.Match("Payments Received by 08/14/2015 $0.00", "''d");
digitStartIndex = regexMatch.Index;
alphabet = line.Substring(0, digitStartIndex);
digit = line.Substring(digitStartIndex);
问题在于当像"Amount This Period + $57.00"这样的字符串最后是"本期金额+ $"
如何在c#中使用Regex,如果我还想包含特定的非字母数字字符来检查,如$ + -
?
编辑:我正在寻找输出(变量字母和数字)在上面的例子中,我正在努力成为。
本期金额
"+ 57.00美元"
要按照您提到的方式分割字符串,请使用正则表达式查找初始的alpha/空格字符,然后再查找其余的字符。
var s = "Payments Received by 08/14/2015 $0.00";
var re = new Regex("^([a-z ]+)(.+)", RegexOptions.IgnoreCase);
var m = re.Match(s);
if (m.Success)
{
Console.WriteLine(m.Groups[1]);
Console.WriteLine(m.Groups[2]);
}
^对于查找开头字符很重要。
啊,我想你想要这个:
void Main()
{
var regex = new Regex(@"(.*?)(['$'+'-].*)");
var a = "Payments Received by 08/14/2015 $0.00";
var b = "Amount This Period + $57.00";
Console.WriteLine(regex.Match(a).Groups[1].Value);
Console.WriteLine(regex.Match(a).Groups[2].Value);
Console.WriteLine(regex.Match(b).Groups[1].Value);
Console.WriteLine(regex.Match(b).Groups[2].Value);
}
输出:
Payments Received by 08/14/2015
$0.00
Amount This Period
+ $57.00