2010-10-26 4 views
2

Я пытаюсь использовать Regex, чтобы узнать, соответствует ли строка * abc - другими словами, она начинается с чего-либо, но заканчивается с помощью «abc»?Что такое регулярное выражение для * abc?

Что такое выражение регулярного выражения для этого? Я пробовал * abc, но «Regex.Matches» возвращает true для xxabcd, чего я не хочу.

+0

Пожалуйста, пост именно то, что вы ищете, а также любые строки, которые вы хотите, чтобы потерпеть неудачу. –

+1

Не упускать из виду понимание того, как использовать Regex, но если у вас буквально есть один строковый объект, и вы хотите знать, заканчивается ли оно «abc», вы можете использовать метод экземпляра строки '.EndsWith (« abc ») 'http://msdn.microsoft.com/en-us/library/2333wewz.aspx –

+0

https://regex101.com/ - Этот сайт очень полезен, чтобы попробовать регулярное выражение и протестировать его. И имеет ссылку в правом нижнем углу. – Shan

ответ

4
.*abc$ 

следует сделать.

+2

вам действительно не нужно' . * ' – nico

+1

Правильно. Это зависит от того, хочет ли он делать больше, чем просто проверять строку - возможно, что-то сделать с совпадением. –

+0

сохраните'. * ', И он будет« потреблять »все символы перед ним (т.е. 'будет частью «совпадения»), удалите его, и только «abc» будет «сопоставлен» – Brad

8

abc$

Вам нужен $, чтобы соответствовать конец строки.

+0

Я думаю, что нашел ответ: ^. * Abc \ z " – user380719

+0

Yep, $ также работает ... – user380719

+0

Разница между' '' 'и' \ Z' заключается в том, что '' 'будет соответствовать концу строки. Если у вас есть возврат каретки в вашей строке, она будет соответствовать прямо перед возвратом каретки. '\ Z' будет соответствовать концу строки, независимо от того, имеет ли она возврат каретки или нет. – CanSpice

1

Попробуйте вместо этого:

.*abc$ 

в $ соответствует концу строки.

1
^.*abc$ 

Захват любой строки, заканчивающейся в abc.

4

Итак, у вас есть несколько «рыб» здесь, но here's how to fish.

  • Онлайновая библиотека выражения и .NET на основе тестера: RegEx Library
  • Онлайн рубин на основе тестером (быстрее, чем .NET один) Rubular
  • окна приложения для тестирования exressions (наиболее полнофункциональным , но без нулевой ширины или сзади)
+0

Я искал базовое руководство по регулярным выражениям, и это выглядит как удобная ссылка. +1 –

+0

+1 для обучения вместо решения – xPheRe

1

Это зависит от того, что именно вы ищете. Если вы пытаетесь соответствовать целые строки, например:

линию со словами и spacesabc

вы могли бы сделать:

^.*abc$ 

Где ^ соответствует началу строки и $ конец.

Но если вы соответствуете словам в строке, например.

пытается соответствовать thisabc и thisabc но не thisabcd

Вы должны сделать что-то вроде:

\w*abc(?!\w) 

Это означает, что соответствует любому количеству непрерывных символов, а затем аЬс и затем ничего , но символ (например, пробел или конец строки).

+0

Я думаю, что ваш ответ представляет то, что пользователь хочет ... используя параметр \ w, вы поймаете любые слова, которые заканчиваются на abc. – dutertimes

0

Если вы хотите строку 4-х символов, заканчивающихся в использовании а, /^.abc$/

Смежные вопросы