我正在尝试将字符串与regex
模式匹配,但存在一些问题。
我的字符串只能有3种形式正确:
这是我的正则表达式:
"^((\[)?dbo(\])?)?(\.)?(\[)?Start(\])?$"
所有3个表单都会返回成功,但还有其他一些选项,例如:[dboStart
或dbo[Start
我知道这是因为它是可选的,但是在制作可选项时如何制作依赖项,以便如果一个可选项具有值,则第二个可选项也必须具有值。
你可以帮我解决这个问题吗?
感谢。
答案 0 :(得分:1)
两个想法:
1。)替代模式
^(?:\[dbo\]\.\[Start\]|(?:dbo\.)?Start)$
2.。)如果支持conditionals:
^(?:(\[)?dbo(?(1)\])\.)?(?(1)\[)Start(?(1)\])$
这里第一个开放[
被捕获在第一个捕获组中。其他[]
取决于$1
的匹配。
答案 1 :(得分:0)
试试这个:
string str = dt.Rows[0]["str"].ToString();
//here dt.Rows[0]["str"].ToString(); is the datatable value for a particular row
str = Regex.Replace(str, @"[[]", String.Empty);
str = Regex.Replace(str, @"[]]", String.Empty);
str = Regex.Replace(str, @"[.]", String.Empty);
string result = str;
希望这可以帮到你!
答案 2 :(得分:0)