Skip to main content
 首页 » 编程设计

c#之正则表达式之如何查找单词和引用的短语

2024年01月22日26dflying

我想说一串下面的话:

Guiness Harp "Holy Moses" 

以便在 C# 或 VB 中获得匹配集:

Guiness 
Harp 
Holy Moses 

本质上它是按空格拆分的,除非空格周围有引号,然后引号之间的那些词被视为单个短语。

谢谢, 凯文

请您参考如下方法:

如果您在引用的字符串中没有任何(转义或双引号)引号,您可以搜索

 "[^"]*"|\S+ 

但是,引号将成为匹配的一部分。如有必要,可以扩展正则表达式以处理带引号的字符串中的引号。

另一种(在这种情况下更可取)的可能性是使用 csv 解析器。

例如(Python):

import csv 
reader = csv.reader(open('test.txt'), delimiter=' ', quotechar='"') 
for row in reader: 
    print(row)