regex 正则表达式不工作C#

tvokkenx  于 2023-05-08  发布在  C#
关注(0)|答案(4)|浏览(209)

我有一个文本框的形式。我想在文本框中写入路径(例如:D:\temp)之后,我想创建这个路径。我试图使用这个正则表达式,但不工作!我想把第一个字母写在上面,但是不行。另外,我希望字符串只包含一次“:”和“\”。在“:\”之后,我想插入一些字符串小写@"^[A-Z][:][][a-z]$”有一些建议吗?多谢了!

eyh26e7m

eyh26e7m1#

我相信你要找的正则表达式是

@"^[A-Z]:\\[a-z]+$"

您的有两个问题。首先,你没有分隔反斜杠,所以它分隔了],这意味着你要找的是一个],[,或者冒号后面的a到z。第二个问题是,你想在反斜杠后面找到一个或多个字母,所以你需要使用+。最后,冒号和反斜杠不一定要成组。

egdjgwm8

egdjgwm82#

你可以试试这个:

[RegularExpression("^("[A-Z][a-z]+$)",
ErrorMessage = "Please Enter Correct Name")]

说明

  • ^字符串开头
  • [ ]括号指定字符集
  • A-Z a-z所有大写/小写字母
  • 考虑一个空间
  • +一个或多个字母
  • $表示字符串结束
yh2wf1be

yh2wf1be3#

试试这个正则表达式:[A-Z]:[a-z]+。然后尝试^[A-Z]:\w+$
在你的代码中像这样声明你的正则表达式:

string myRegex = @"[A-Z]:\\[a-z]+"

这样,您只验证像D:\Temp这样的路径,而不验证D:\Temp\Temp2

jrcvhitl

jrcvhitl4#

首先,应该通过或失败的例子会有所帮助。
第二,使用工具来帮助编写正则表达式,解释在您进行时发生的事情,如Expresso或Regex Fiddle。
现在,回到问题上来。下面是一个例子/^[A-Z]:\\[a-z]+$/gm

  • ^ -它匹配一行的开头
  • [A-Z] -匹配单个大写字母
  • :-匹配冒号
  • \ -转义反斜杠以匹配反斜杠
  • [a-z]+ -匹配 * 小写 * 字母(+表示1次或多次)
  • $ -匹配行尾

这是一个编辑后的版本,它检查以确保文件夹的第一个字符是大写字母/^[A-Z]:\\[A-Z][a-z]+$/gm

相关问题