我正在尝试在C#中建立一个小的单位转换,并且我正在解决一个问题。我浏览了互联网上的一些示例,但未能申请
public TestSelectModel()
{
_searchoptions = new List<SelectListItem>();
_searchoptions.Add(new SelectListItem() { Text = "By Email", Value = "1", Selected = true });
_searchoptions.Add(new SelectListItem() { Text = "By Request Name", Value = "2", Selected = false });
}
public void OnGet()
{
if(BoundSearchField is null)
{
BoundSearchField = "1";
}
SearchOptions = new SelectList(_searchoptions, "Value", "Text", BoundSearchField);
}
我想Example text input:
12m
12 m
12.4m
.5m
12.m
和string num
string unit
仅当输入具有new Regex(@"([\d.])([a-zA-Z- -/]+)");
之类的int
而不是12m
或12.m
时,这才给我结果
我可以解决在输入文本中包含12.4m...
的问题,但是现在输入中必须包含.
,小数部分也是如此。
.
尽管我可以处理多种可能的情况来处理不同的输入格式,但是代码看起来很糟糕。任何帮助表示赞赏。
答案 0 :(得分:0)
您可以使用
(\d*\.?\d+|\d+\.?\d*)\s*([a-z]+)
请参见regex demo
详细信息
(
-捕获组1的开始:
\d*\.?\d+
-0位数以上,可选.
,1位数以上|
-或\d+\.?\d*
-1位数以上,可选.
,0位数以上)
-捕获组1结束\s*
-超过0个空格([a-z]+)
-捕获第2组:一个或多个小写字母。