小编Hed*_*edy的帖子

使用 sed 仅获取捕获组中的字母数字字符

输入:

x.y={aaa b .c}
Run Code Online (Sandbox Code Playgroud)

请注意,其中的内容{}只是一个示例,实际上它可以是任何值。

问题:我想只保留中的{}字母数字字符。

所以它会来:

x.y={aaabbc}
Run Code Online (Sandbox Code Playgroud)

试用0

x.y={aaa b .c}
Run Code Online (Sandbox Code Playgroud)

这很棒,但我只想修改{}. 所以我认为这可能需要捕获组,因此我继续尝试这些:

试验1

x.y={aaabbc}
Run Code Online (Sandbox Code Playgroud)

在这里,我已经捕获了我想要aaa b .c正确修改 () 的内容,但我需要一种方法以某种方式s/[^[:alnum:]]\+//g 仅在\1.

相反,我尝试仅捕获所有字母数字字符(到\1),如下所示:

试验2

$ echo 'x.y={aaa b .c}' | sed 's/[^[:alnum:]]\+//g'
xyaaabc
Run Code Online (Sandbox Code Playgroud)

当然,它不起作用,因为我只期待alnum,然后立即得到}文字。我没有告诉它忽略非alnum。即这部分:

s/x.y=\{([[:alnum:]]+)\}/x.y={\1}/
      ^^^^^^^^^^^^^^^^^^   
Run Code Online (Sandbox Code Playgroud)

它确实匹配:一个左大括号,一些alnum,和一个右大括号——这不是我想要的。我希望它能够匹配所有内容,但只捕获 alnum 的.


输入/输出示例:

x.y={aaa b .c} blah
blah
x.y={1 2 3 def} blah
blah
Run Code Online (Sandbox Code Playgroud)

x.y={aaabc} blah
blah
x.y={123def} blah …
Run Code Online (Sandbox Code Playgroud)

regex awk sed

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

如何将 Traceback 错误信息保存到文件中

假设我有一个非常简单的代码,但会引发错误:

print(1/0)
Run Code Online (Sandbox Code Playgroud)

如何将完整的回溯错误保存到文件中,以便该文件包含:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    print(1/0)
ZeroDivisionError: division by zero
Run Code Online (Sandbox Code Playgroud)

python error-handling file traceback python-3.x

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

标签 统计

awk ×1

error-handling ×1

file ×1

python ×1

python-3.x ×1

regex ×1

sed ×1

traceback ×1