2016-07-22 82 views
-1

我有一个窗体中的文本框。我想写在那里的文本框,路径(例如:D:\温度),然后,我想创建此路径。 我试图使用这个正则表达式,但不工作!我想要第一个字母是上面的,但不起作用。另外我希望字符串只包含“:”和“\”一次。 “:\”我想插入一些字符串小写 @“^ [A-Z] [:] [\] [a-z] $” 有一些sugestions? 非常感谢!正则表达式不工作C#

+0

显示你已经尝试什么,心不是工作。 – Takarii

+1

[a-z]只允许一个小写字符。在它之后添加+以允许1个或更多或使用*为零或更多。你需要用第二个分隔反斜杠,因为它正在分隔]。 – juharr

+1

你的意思是“它不工作”?什么应该工作,什么应该失败?给我们例子! –

回答

0

试试这个正则表达式:[A-Z]:\ [a-z] +。 然后尝试^ [AZ]:\\ W + $

声明你的正则表达式像这样在你的代码:

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

有了这个,你只验证像d路径:\ TEMP,但不是d:\ TEMP \ TEMP2

2

我相信你正在寻找的正则表达式

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

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

+0

基于这个问题,我也相信这是被问到的,但是OP应该意识到它不会匹配具有多于一个嵌套的路径目录。例如D:\ temp \ other将不匹配。 – fiveclubs

+1

@fiveclubs它也不会匹配文件,如果它有一个扩展名,因为它不匹配点,它不会匹配混合大小写目录或文件名或任何具有非字母字符如下划线或数字。 – juharr

0

首先,应该通过或失败的例子会有所帮助。

其次,使用工具来帮助编写解释正在发生的事情的正则表达式,例如Expresso或Regex Fiddle。

现在,就这个问题。这里有一个例子/^[A-Z]:\\[a-z]+$/gm http://refiddle.com/refiddles/5792227f75622d3df0480300

  • ^- 这行
  • [AZ]开始匹配 - 匹配单个大写字母
  • : - 冒号匹配
  • \ - 逃避反斜杠匹配 反斜杠
  • [AZ] + - 一个字母(在+机构1或 更多次)匹配
  • $ - 匹配行

编辑结束:增加检查,以确保文件夹中的第一个字符是一个大写字母/^[A-Z]:\\[A-Z][a-z]+$/gm http://refiddle.com/refiddles/5792259075622d3df05e0300

+0

如果您想要'D:\ one \ two'这样的多个文件夹,我们需要对此进行更改...另外,您确定只需要小写文件夹名称吗? – CaffGeek

+0

是的..小写...但如果文件夹名称应该有第一个字母上面怎么办?我该怎么办? –

+0

然后,你必须在小写字母之前添加到正则表达式中,像这样:/^[AZ]:\\ [AZ] [az] + $/gm'我在小写检查前添加了一个大写字母检查...目前这个正则表达式会传递'D:\ Fo',但是因为它需要一个大写字母和一个或多个小写字母,所以'D:\ F'失败。改变'+'为'*'会将它改为0或更多的小写字母 – CaffGeek