输入:
x.y={aaa b .c}
Run Code Online (Sandbox Code Playgroud)
请注意,其中的内容{}只是一个示例,实际上它可以是任何值。
问题:我想只保留中的{}字母数字字符。
所以它会来:
x.y={aaabbc}
Run Code Online (Sandbox Code Playgroud)
x.y={aaa b .c}
Run Code Online (Sandbox Code Playgroud)
这很棒,但我只想修改{}. 所以我认为这可能需要捕获组,因此我继续尝试这些:
x.y={aaabbc}
Run Code Online (Sandbox Code Playgroud)
在这里,我已经捕获了我想要aaa b .c正确修改 () 的内容,但我需要一种方法以某种方式s/[^[:alnum:]]\+//g 仅在\1.
相反,我尝试仅捕获所有字母数字字符(到\1),如下所示:
$ 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) 假设我有一个非常简单的代码,但会引发错误:
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)