我想要一串说下面的话:
Guiness Harp "Holy Moses"
Run Code Online (Sandbox Code Playgroud)
这样在C#或VB中得到一个匹配集:
Guiness
Harp
Holy Moses
Run Code Online (Sandbox Code Playgroud)
基本上,除非空格周围有引号,否则它会拆分空格,然后引号之间的单词被视为单个短语.
谢谢,凯文
如果您在引用的字符串中没有任何(转义或加倍)引号,则可以搜索
"[^"]*"|\S+
Run Code Online (Sandbox Code Playgroud)
但是,报价将成为比赛的一部分.如果需要,可以扩展正则表达式以处理引用字符串中的引号.
另一种(在这种情况下是优选的)可能性是使用csv解析器.
例如(Python):
import csv
reader = csv.reader(open('test.txt'), delimiter=' ', quotechar='"')
for row in reader:
print(row)
Run Code Online (Sandbox Code Playgroud)