c# - 文本解析和拆分文本,包括/不包括引号

标签 c# regex quotes escaping

我的问题与我在此处找到的较早条目几乎相同,但不完全相同。

我需要解析一个文本文件,其中的数据结构如下: 文件中的每一项都以 # 开头,后跟标签。 帖子中的字段由一个或多个空格分隔。

这是我遇到问题的部分。 每个字段可能会或可能不会被引号括起来,只有当数据包含空格时才需要。

所以我想要的是一个由空格分隔的正则表达式,但如果该空格在引号内则不会。

目前我正在为每个标签使用一个单独的正则表达式,然后从文件中读取时立即拆分它会更有效率。 至于下面的帐户示例 (^#[A-z]+)\s([0-9]+)\s(.+)

数据示例

#ACCOUNT 7059 "Misc. travelexpenses"
#ADRESS "M. Jackson" "somewhere over the rainbow" WI53233-1704 555-12345

最佳答案

您可以使用“OR”结构来定义字段的可能形式。 喜欢

([A-z]+|"[^"]+") 

同时匹配 Kring 和“Mr. Kring”。

编辑:因此,要获取上述记录中的所有字段和标签,您可以使用

(?:^#|\s+)([^"#\s]+|"[^"]+")

http://gskinner.com/RegExr/是测试正则表达式的好方法。

关于c# - 文本解析和拆分文本,包括/不包括引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2332573/

相关文章:

Python:尝试通过在名片上移动外部边框来获取用户输入

javascript - sendemail的Google AppScript语法错误。无法识别我的问题

c# - Windows Live SDK 不注销()

c# - native C++ dll/C#内存问题

c# - 像 Google 搜索一样搜索组合框

c# - 使用静态方法寻找关于线程安全的建议到 'process' 类实例

ruby - 正则表达式将字符串视为 ruby​​ 中的多行

javascript - 使用 switch 语句评估 javascript 中的正则表达式

python - 在双引号和单引号中打印

java - 如何将这些正则表达式组合到 JavaScript 中