我将数据存储在我需要提取的字符串中并转换为另一个字符串。我的字符串数据如下所示:
小工具PO NO。 1234
身体PO NO。 123456个
永PO号12345-2
坚果PO NO。 1-234-56-7
“PO NO。”将永远是相同的,所以我只想在“NO。”中的尾随空格之后提取数据,并将其转换为另一个字符串,以便我可以获得数字数据(即采购订单#)。
感谢。
答案 0 :(得分:2)
使用您的实际字符串表示形式,您在每个文本部分后面都有一个空格......所以提供另一条路线......
String rawPO = "Body PO NO. 123456";
String trimmedPO = rawPO.Remove(0, rawPO.LastIndexOf(" ")).Trim();
答案 1 :(得分:1)
const string refString = "PO NO.";
string aLine = "Widget PO NO. 1234";
string orderNumb = aLine.Substring(aLine.LastIndexOf(refString) + refString.Length).Trim();
答案 2 :(得分:1)
您可以使用正则表达式:
Match m = Regex.Match(str, @"PO NO\. (?<PO>\d+)$");
string poNumber = m.Groups["PO"].Value;
答案 3 :(得分:1)
尝试String.Split:
strOrder = "Widget PO NO. 1234";
arSplit = strOrder.Split(" PO NO. ");
这将创建一个数组arsplit[]
,包含PO NO之前的所有内容。在arSplit[0]
以及arsplit[1]
之后的所有内容。
答案 4 :(得分:1)
使用正则表达式提取所需的部分。此正则表达式将返回分组结果:
[.\W]*PO NO\.\W*([\d-]*)
这是一些演示代码(C#):
string[] strings = new string[] {"Widget PO NO. 1234",
"Body PO NO. 123456",
"Wing PO NO. 12345-2",
"Nut PO NO. 1-234-56-7"};
Regex regex = new Regex(@"[.\W]*PO NO\.\W*([\d-]*)");
Match match;
foreach (string s in strings)
{
match = regex.Match(s);
Console.WriteLine(match.Groups[1].Value);
}
答案 5 :(得分:0)
string order = orders.Split(" ")[3];