带有转义单引号的单引号字符串上的Python正则表达式

马丁23

假设我们有这样的输入(这是一个示例,无论是否有意义):

data = "(((column_1 + 7.45) * 3) <>    column_2 - ('string\'1' / 2))"

好吧,我需要'使用Python re模块匹配一个字符串,该字符串的开头和结尾都可能包含转义的单引号,如上例所示。所以结果应该是string\'1我们如何实现呢?

编辑:我正在使用PLY库,用法应该是

def t_leftOperand_arithmetic_rightOperand_STRING(self, t):
    r'<regex>'
    t.lexer.pop_state()
    return t
用户名

我相信您也必须考虑逃脱的逃生。

为此,您需要 '[^'\\]*(?:\\[\S\s][^'\\]*)*'


输入

'''Set 1 - this
is another
mul\'tiline
string'''
'''Set 2 - this
is' a\\nother
mul\'''tiline
st''ring'''

基准:

Regex1:   '[^'\\]*(?:\\[\S\s][^'\\]*)*'
Options:  < none >
Completed iterations:   400  /  400     ( x 1000 )
Matches found per iteration:   9
Elapsed Time:    5.00 s,   4995.27 ms,   4995267 µs


Regex2:   '(?:[^'\\]|\\.)*'
Options:  < s >
Completed iterations:   400  /  400     ( x 1000 )
Matches found per iteration:   9
Elapsed Time:    7.00 s,   7000.68 ms,   7000680 µs

其他正则表达式(仅用于测试。正如@ridgerunner所说,这可能会导致回溯问题)

Regex2:   '(?:[^'\\]+|\\.)*'
Options:  < s >
Completed iterations:   400  /  400     ( x 1000 )
Matches found per iteration:   9
Elapsed Time:    5.45 s,   5449.72 ms,   5449716 µs

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python正则表达式将带引号的字符串与转义的单引号匹配

来自分类Dev

Ruby正则表达式提取单引号/双引号之间的字符串,其中可能包含转义字符

来自分类Dev

使用正则表达式在 Python 中将转义的双引号替换为单引号

来自分类Dev

如何使用正则表达式匹配单引号或双引号中的字符串

来自分类Dev

正则表达式提取单引号或双引号之外的字符串

来自分类Dev

正则表达式提取单引号或双引号之外的字符串

来自分类Dev

正则表达式匹配按空格分隔的转义双引号/单引号?

来自分类Dev

带有连字符,单引号和单个空格的正则表达式字母数字超时(崩溃)

来自分类Dev

正则表达式,某些字符串后的单引号之间的匹配

来自分类Dev

熊猫:使用正则表达式清理包含单引号和括号的字符串列?

来自分类Dev

正则表达式用于转义尚未转义的单引号

来自分类Dev

正则表达式的Python原始字符串表示法的单引号,双引号或三重双引号?

来自分类Dev

java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

来自分类Dev

java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

来自分类Dev

正则表达式匹配双引号和单引号之外的所有逗号

来自分类Dev

在Oracle正则表达式查询中转义单引号

来自分类Dev

PHP正则表达式-单引号无效-TWIG预转义

来自分类Dev

PHP正则表达式-单引号不起作用-TWIG预转义

来自分类Dev

Python:正则表达式lookbehind在单引号或双引号后得到单词

来自分类Dev

正则表达式通过忽略“已替换单引号”和“开始/结束单引号”来替换单引号

来自分类Dev

Ansible替换单引号正则表达式

来自分类Dev

正则表达式-单引号之间的匹配空间

来自分类Dev

正则表达式以添加逗号和单引号

来自分类Dev

正则表达式替换单引号之间的空格

来自分类Dev

忽略正则表达式中的单引号

来自分类Dev

正则表达式中单引号内的单引号

来自分类Dev

PHP-正则表达式,用于删除字符串开头和结尾的单引号

来自分类Dev

单引号,双引号和无引号的Javascript正则表达式

来自分类Dev

正则表达式:获取所有单个字符,但不包含在单引号之间

Related 相关文章

  1. 1

    Python正则表达式将带引号的字符串与转义的单引号匹配

  2. 2

    Ruby正则表达式提取单引号/双引号之间的字符串,其中可能包含转义字符

  3. 3

    使用正则表达式在 Python 中将转义的双引号替换为单引号

  4. 4

    如何使用正则表达式匹配单引号或双引号中的字符串

  5. 5

    正则表达式提取单引号或双引号之外的字符串

  6. 6

    正则表达式提取单引号或双引号之外的字符串

  7. 7

    正则表达式匹配按空格分隔的转义双引号/单引号?

  8. 8

    带有连字符,单引号和单个空格的正则表达式字母数字超时(崩溃)

  9. 9

    正则表达式,某些字符串后的单引号之间的匹配

  10. 10

    熊猫:使用正则表达式清理包含单引号和括号的字符串列?

  11. 11

    正则表达式用于转义尚未转义的单引号

  12. 12

    正则表达式的Python原始字符串表示法的单引号,双引号或三重双引号?

  13. 13

    java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

  14. 14

    java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

  15. 15

    正则表达式匹配双引号和单引号之外的所有逗号

  16. 16

    在Oracle正则表达式查询中转义单引号

  17. 17

    PHP正则表达式-单引号无效-TWIG预转义

  18. 18

    PHP正则表达式-单引号不起作用-TWIG预转义

  19. 19

    Python:正则表达式lookbehind在单引号或双引号后得到单词

  20. 20

    正则表达式通过忽略“已替换单引号”和“开始/结束单引号”来替换单引号

  21. 21

    Ansible替换单引号正则表达式

  22. 22

    正则表达式-单引号之间的匹配空间

  23. 23

    正则表达式以添加逗号和单引号

  24. 24

    正则表达式替换单引号之间的空格

  25. 25

    忽略正则表达式中的单引号

  26. 26

    正则表达式中单引号内的单引号

  27. 27

    PHP-正则表达式,用于删除字符串开头和结尾的单引号

  28. 28

    单引号,双引号和无引号的Javascript正则表达式

  29. 29

    正则表达式:获取所有单个字符,但不包含在单引号之间

热门标签

归档