我试图通过以下方式将字符串拆分为标记(通过正则表达式):
示例#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'");
Run Code Online (Sandbox Code Playgroud)
这将适用于例如#1和示例#3,但它不适用于示例#2.我想知道理论上是否有办法用正则表达式实现我想要的东西
你可以构建一个简单的词法分析器,它将涉及逐个使用每个标记.因此,您将拥有正则表达式列表,并尝试在每个点匹配其中一个.如果您的输入超出了非常简单的范围,那么这是最简单,最干净的方法.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           423 次  |  
        
|   最近记录:  |