我有以下字符串
2011的里雅斯特MED清洁/粗制/粗制
2013的里雅斯特
2013宁波东太平洋CCA / CF / CE
2014年Agioi theodoroi MED cde / fo / ce
我真正想做的是尝试将Trieste MED(第一字符串),Trieste(第二字符串),宁波东太平洋(第三字符串)和agioi theodoroi med(第四字符串)作为一个开放端口来捕获。通常在2013年日期之间有1到4个字,例如,粗/粗/粗。
到目前为止,这是我尝试过的。
但这容易出错,因为我只假设开放端口组的字由一个或两个最大空格分隔,这是错误的。如果我尝试放置\ s *,则将捕获第一个干净的字母,这是错误。有更好的东西吗?
最佳答案
您可以以此简化您的正则表达式,
^(?<YearBuilt>\d{4})\s+(?<OpenPort>.*)\s+(?<LastCargos>[^ ]+)$
由于字符串中的第一件事是一年,因此请使用
\d{4}
,最后要分组的内容是这样的clean/crude/crude
,您可以将其捕获为该[^ ]+
(任何内容,但不能包含空格),然后输入中间文本可以使用Ningbo East Pacific
捕获其样本为.*
的样本Demo
让我知道这对于其他字符串是否适合您。
关于c# - 正则表达式-介于两者之间的单词数量未知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54055137/