2010-03-05 2 views
0

Пытается проанализировать строку SQL и вытащить параметры.регулярное выражение для выражения слов, начинающихся с @

Ex: "выберите * из таблицы, где [год] между @ Yr1 и @ Yr2"

Я хочу, чтобы вытащить "@ Yr1" и "@ Yr2"

Я пробовал много моделей, но никто не работал, таких как:

matches = Regex.Matches(sSQL, "\[email protected]\w*\b") 

и

matches = Regex.Matches(sSQL, "\b\@\w*\b") 

Любая помощь?

ответ

1

Вы пытаетесь положить слово границы после @, а не раньше. Может быть, это:

\ ш (@ [A-z0-9A-г] +)

или

\ ш (@ [^ \ s] +)

1

Я пошел бы с

/^|\s(@\w+)\s|$/ 

или, если вы не хотите включать @

/^|\[email protected](\w+)\s|$/ 

хотя я также как Иоиля выше, так что, может быть, один из этих

/^|\s(@[^\s]+)\s|$/ 
/^|\[email protected]([^\s]+)\s|$/ 
Смежные вопросы