2010-10-26 186 views
2

我想用正则表达式来判断一个字符串是否匹配* abc - 换句话说,它以任何东西开始,但用“abc”结束?* abc的正则表达式是什么?

这是什么正则表达式? 我试过* abc,但是“Regex.Matches”对xxabcd返回true,这不是我想要的。

+0

请发表你寻找什么,以及要失败的任何字符串。 – 2010-10-26 17:57:10

+1

不要忽略理解如何使用正则表达式的价值,但是如果你真的有一个字符串对象,并且想知道它是否以“abc”结尾,那么可以使用字符串实例方法'.EndsWith(“abc”) 'http://msdn.microsoft.com/en-us/library/2333wewz.aspx – 2010-10-26 19:06:59

+0

https://regex101.com/ - 这个网站是非常有用的尝试正则表达式和测试它。并在右下角有参考。 – Shan 2017-02-24 16:12:49

回答

4
.*abc$ 

应该做的。

+2

你并不需要' *' – nico 2010-10-26 17:48:51

+1

正确,这取决于他是否想要做的不仅仅是检查字符串 - 也许在事后跟随匹配。 – 2010-10-26 17:52:19

+0

保留'。*'并且它将“消耗”之前的所有字符(即它们);将它删除,只有'abc'将被“匹配” – Brad 2010-10-26 17:56:20

8

abc$

你需要$到字符串的结尾相匹配。

+0

我想我找到了答案:^。* abc \ z“ – user380719 2010-10-26 17:54:51

+0

是的,$也适用于...... – user380719 2010-10-26 17:55:18

+0

'$'和'\ Z'之间的区别在于'$'将匹配一行的结尾。如果你的字符串中有一个回车符,它将在回车之前匹配,'\ Z'将匹配字符串的末尾,不管它是否有回车符 – CanSpice 2010-10-26 17:58:48

1

试试这个:

.*abc$ 

的$行的结尾匹配。

1
^.*abc$ 

将捕获任何以abc结尾的行。

4

所以你这里有几条“鱼”,但是here's how to fish

  • 在线表达式库和基于.NET的测试仪:RegEx Library
  • 在线基于Ruby的测试仪进行测试exressions Rubular
  • 一个Windows应用程序(而不是.NET的速度更快)(最全功能,但没有零宽度查找aheads或后面)RegEx Coach
+0

我一直在寻找正则表达式的基本指南,这看起来像一个方便的参考。 +1 – 2010-10-26 17:53:57

+0

用于教学而不是解答 – xPheRe 2010-10-26 18:06:26

1

这取决于究竟你要寻找的。如果你想匹配整行,如:

与字线和spacesabc

你可以这样做:

^.*abc$ 

^匹配行的开头和$结束。

但是,如果您在一行中匹配单词,例如

试图匹配thisabc和thisabc但不thisabcd

你将不得不做这样的事情:

\w*abc(?!\w) 

这意味着,匹配任意数量的连续字符,其次是ABC和那么任何东西但是一个字符(例如空格或行尾)。

+0

我认为你的答案代表了用户想要的内容......使用\ w参数,你会看到任何以abc结尾的单词。 – dutertimes 2010-10-26 18:10:12

0

如果你想在ABC将结束4个字符的字符串,/^.abc$/

相关问题