我想从strip中删除尾随空格和其他一些字符。这里是示例输入/输出(显式标记的制表符和换行符):
Input:
"\t [[ dwarf ]]] \n"
Output:
"dwarf"
现在我理论上可以解决这个问题:
x = x.strip().strip("[]").strip().strip("[]")
这应该耗尽我的数据库中可能发生的每种组合;但是,如果我们有更多级别的括号和空格,我仍然需要更改代码。我可以通过循环来解决这个问题,但它会同样丑陋和低效。有没有更好的方法,或者告诉strip不要使用整个字符串,而是使用我提供的字符?
答案 0 :(得分:5)
您只需拨打11-26 16:36:33.647: D/OpenCV/StaticHelper(13993): Trying to load library opencv_java3
11-26 16:36:33.647: D/OpenCV/StaticHelper(13993): Cannot load library "opencv_java3"
11-26 16:36:33.647: W/System.err(13993): java.lang.UnsatisfiedLinkError: Couldn't load opencv_java3 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.facedetect-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.opencv.samples.facedetect-1, /vendor/lib, /system/lib, /vendor/lib]]]: findLibrary returned null
11-26 16:36:33.767: D/OpenCV/StaticHelper(13993): Trying to load library opencv_java3
11-26 16:36:33.767: D/OpenCV/StaticHelper(13993): Cannot load library "opencv_java3"
11-26 16:36:33.767: W/System.err(13993): java.lang.UnsatisfiedLinkError: Couldn't load opencv_java3 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.facedetect-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.opencv.samples.facedetect-1, /vendor/lib, /system/lib, /vendor/lib]]]: findLibrary returned null
一次:
str.strip
string.whitespace
是一个包含所有(ascii)空格字符的字符串。 In [6]: import string
In [7]: "\t [[ dwarf ]]] \n".strip("[]" + string.whitespace)
Out[7]: 'dwarf'
会删除S.strip("[]" + string.whitespace)
,[
和空格字符的所有组合。
答案 1 :(得分:4)
这是一个支持UNICODE的正则表达式版本。
>>> import re
>>> st = "\t [[ dwarf ]]] \n"
>>> re.sub(r"\s*\[|\]\s*", "", st, flags=re.UNICODE).strip()
'dwarf'
比前一个更优雅的正则表达式(使用ur
来处理UNICODE正则表达式模式):
>>> re.sub(ur"[ \s*[\] ]+", "", st, flags=re.UNICODE).strip()