Я пытаюсь разделить строку на лексемы (через регулярные выражения) следующим образом:Возможны ли регулярные выражения?
Пример # 1
входной строки: 'hello'
первый маркер: '
второй маркер: hello
третий маркер: '
Пример # 2
входная строка: 'hello world'
первый маркер: '
второй маркер: hello world
третий маркер: '
Пример # 3
входная строка: hello world
первый маркер: hello
второй маркер: world
, т. Е. Разделите строку только в том случае, если она НЕ в одинарных кавычках, а одинарные кавычки должны быть в их собственном токене.
Это то, что я до сих пор:
string pattern = @"'|\s";
Regex RE = new Regex(pattern);
string[] tokens = RE.Split("'hello world'");
Это будет работать, например, # 1 и пример # 3, но это не будет работать, например, 2 #. Мне интересно, есть ли теоретически способ добиться того, что я хочу с помощью регулярных выражений.
Что вы ожидаете произойдет за строка: привет «миру»? (т. е. смешанные кавычки и слова без кавычек) – Paolo
token1: hello token2: 'token3: toorld token4:' – foreyez
Вы можете сначала разделить на цитированное строковое регулярное выражение, а затем разделить каждую полученную строку. – 2010-02-09 22:07:11