我有类似的字符串
a;b;"aaa;;;bccc";deef
Run Code Online (Sandbox Code Playgroud)
我想基于分隔符拆分字符串,;如果;不在双引号内.所以在分裂之后,它将是
a
b
"aaa;;;bccc"
deef
Run Code Online (Sandbox Code Playgroud)
我尝试使用look-behind,但是我无法找到正确的正则表达式来进行拆分.
正则表达式可能不是正确的工具.如果可能,您应该使用CSV库,指定;分隔符和"引号字符,这应该为您提供您要查找的确切字段.
这里所说的是一种方法,通过确保在;我们考虑字符串的分割和结束之间存在偶数个引号来起作用.
;(?=(([^"]*"){2})*[^"]*$)
Run Code Online (Sandbox Code Playgroud)
示例:http://www.rubular.com/r/RyLQyR8F19
例如,如果您可以在字符串中转义引号,则会出现故障a;"foo\"bar";c.
这是使用Python的csv模块的一个更清晰的例子:
import csv, StringIO
reader = csv.reader(StringIO.StringIO('a;b;"aaa;;;bccc";deef'),
delimiter=';', quotechar='"')
for row in reader:
print '\n'.join(row)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |