相关疑难解决方法(0)

正则表达式可以用于匹配嵌套模式吗?

是否可以编写与未出现次数的嵌套模式匹配的正则表达式?例如,当外括号内嵌有未知数量的打开/关闭括号时,正则表达式是否可以匹配开括号和右括号?

例如:

public MyMethod()
{
  if (test)
  {
    // More { }
  }

  // More { }
} // End
Run Code Online (Sandbox Code Playgroud)

应该匹配:

{
  if (test)
  {
    // More { }
  }

  // More { }
}
Run Code Online (Sandbox Code Playgroud)

regex nested finite-automata

223
推荐指数
8
解决办法
11万
查看次数

Python分隔线分裂问题

我正在努力根据变量分隔符拆分文本行,并保留空字段和引用数据.

例子:

1,"2",three,'four, 4',,"6\tsix"
Run Code Online (Sandbox Code Playgroud)

或作为制表符分隔的vesion

1\t"2"\tthree\t'four, 4'\t\t"6\tsix"
Run Code Online (Sandbox Code Playgroud)

两者都应该导致:

['1', '"2"', 'three', 'four, 4', '', "6\tsix"]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过:

  1. 使用拆分,但显然引用的分隔符未按要求处理.

  2. 使用csv库的解决方案,但它往往有选项引用一切或什么都没有,而不保留原始引号.

  3. 正则表达式,特别是遵循以下答案的模式,但它删除空字段:如何拆分但忽略引号字符串中的分隔符,在python中?

  4. 使用pyparsing库.我管理的最好的是如下,但这也会删除空字段(使用逗号分隔符示例):

    s = '1,"2",three,\'four, 4\',,"6\tsix"'
    wordchars = (printables + ' \t\r\n').replace(',', '', 1)
    delimitedList(OneOrMore(quotedString | Word(wordchars)), ',').parseWithTabs().parseString(s)
    
    Run Code Online (Sandbox Code Playgroud)

谢谢你的任何想法!

python regex csv split pyparsing

9
推荐指数
1
解决办法
659
查看次数

用逗号分隔以及如何在split ... Python中从引号中排除逗号

python 2.7代码

cStr = '"aaaa","bbbb","ccc,ddd"' 

newStr = cStr.split(',')

print newStr 

# result : ['"aaaa"','"bbbb"','"ccc','ddd"' ]
Run Code Online (Sandbox Code Playgroud)

但是,我想要这个结果.

result = ['"aaa"','"bbb"','"ccc,ddd"'] 
Run Code Online (Sandbox Code Playgroud)

救命..

python split

7
推荐指数
4
解决办法
7057
查看次数

从带引号的字符串中提取键值对

我无法为此要求编写"优雅"解析器.(一个看起来不像是一顿C早餐).输入是一个字符串,键值对由','分隔,并加入'='.

key1=value1,key2=value2
Run Code Online (Sandbox Code Playgroud)

欺骗我的部分是值可以引用("),而在引号内部,'不会结束键.

key1=value1,key2="value2,still_value2"
Run Code Online (Sandbox Code Playgroud)

最后这部分取得了棘手我使用拆分或re.split,诉诸于我的范围内循环:(.

谁能证明一个干净的方法来做到这一点?

可以假设引号仅在值中发生,并且没有空格或非字母数字字符.

python parsing

4
推荐指数
2
解决办法
2757
查看次数

从正则表达式结果python中删除"

所以我用这个答案非常接近我所需要的.

在我的情况下,我想分割空间,但不是当字符串的一部分在引号内时.

这是我的代码:

data = '"abc dfg" ab da'    
PATTERN = re.compile(r'''((?:[^ "']|"[^"]*"|'[^']*')+)''')
wordList = PATTERN.split(data)[1::2]
Run Code Online (Sandbox Code Playgroud)

给wordList:

['"abc dfg"', 'ab', 'da']
Run Code Online (Sandbox Code Playgroud)

如何更改表达式以使字符串没有额外的引号?

像这样:

['abc dfg', 'ab', 'da']
Run Code Online (Sandbox Code Playgroud)

python regex

2
推荐指数
1
解决办法
42
查看次数

Python使用可能的集解析CSV字符串

我有一个CSV字符串,其中一些项目可能被{}逗号括在里面.我想在列表中收集字符串值.

在列表中收集值的最pythonic方法是什么?

例1 'a,b,c':,预期输出['a', 'b', 'c']

例2 '{aa,ab}, b, c':,预期输出['{aa,ab}','b','c']

例3: '{aa,ab}, {bb,b}, c'预期输出['{aa,ab}', '{bb,b}', 'c']

我试图使用s.split(',')它,它适用于例1,但会陷入案例2和3.

我相信这个问题(如何拆分但忽略引用字符串中的分隔符,在python中?)与我的问题非常相似.但我无法弄清楚要使用的正确的正则表达式语法.

python csv parsing

2
推荐指数
1
解决办法
70
查看次数

用逗号分隔而不用引号括起来

我正在尝试使用正则表达式 (re.split) 拆分字符串,但自从我使用正则表达式以来已经有一段时间了。

字符串看起来像:

string = '"first, element", second element, third element, "fourth, element", fifth element'
Run Code Online (Sandbox Code Playgroud)

我想在每个逗号上拆分字符串,除非子字符串用引号括起来。

输出应如下所示:

output = ['"first, element"', 'second element', 'third element', '"fourth, element"', 'fifth element']
Run Code Online (Sandbox Code Playgroud)

python regex

-3
推荐指数
1
解决办法
7463
查看次数

标签 统计

python ×6

regex ×4

csv ×2

parsing ×2

split ×2

finite-automata ×1

nested ×1

pyparsing ×1