如何找到字符串前面的直接整数值?
问题的出现原因是用户需要找到在字符串中出现在"delivered"之前的最后一个整数值。
解决方法是使用正则表达式来匹配满足条件的字符串。具体的正则表达式是(\d+)[^\d]*(?:delivered)
,它的意思是"匹配在另一个数字序列之前出现且在delivered
之前出现的任意数字序列"。
下面是一个使用这个正则表达式的示例代码:
string line = "50+ boxes were ordered, however only 2 are delivered."; string boxesDelivered = Regex.Match(line, @"(\d+)[^\d]*(?:delivered)").Groups[1].Value; // boxesDelivered = 2
从上述内容可以看出,问题是如何找到在一个字符串之前紧跟着的整数值。这个问题的解决方法是使用正则表达式来匹配模式,并使用特定的代码进行处理。
正则表达式模式是:\b\d+\b(?=[^\d]*\bdelivered\b)
。这个模式使用了\b来匹配整个单词,\d+来匹配一个或多个数字,[^\d]*来匹配任意非数字字符,并使用(?=...)来进行前瞻匹配,以确保在"delivered"之前。
解决方法的示例代码是:
string line = "50+ boxes were ordered, however only 2 are delivered."; var match = Regex.Match(line, @"\b\d+\b(?=[^\d]*\bdelivered\b)"); if (match.Success) { string boxesDelivered = match.Value; // TODO: convert the value to a numeric type or use it as is. }
这个代码示例首先定义了一个字符串line,然后使用Regex.Match方法来进行匹配。如果匹配成功,则将匹配到的值赋给boxesDelivered变量,并可以将其转换为数值类型或直接使用。
最后,问题的提出者表示这个解决方法对其有效,并感谢这个解决方法。