[英]What is the correct way to use unicode characters in a python regex
在使用Python 2.7抓取某些文檔的過程中,我遇到了一些惱人的頁面分隔符,我決定刪除它們。 分隔符使用一些時髦的字符。 我已經在這里問了一個關於如何讓這些字符顯示他們的utf-8代碼的問題。 使用了兩個非ASCII字符: '\\xc2\\xad'
和'\\x0c'
。 現在,我只需要刪除這些字符,以及一些空格和頁碼。
在 SO的其他地方 ,我看到unicode字符與正則表達式一起使用,但它是一種奇怪的格式,我沒有這些字符,例如'\«'
。 此外,它們都不使用ASCII以及非ASCII字符。 最后,python文檔對正則表達式中的unicode主題非常清楚......有關標志的事情......我不知道。 有人可以幫忙嗎?
這是我目前的用法,它沒有做我想要的:
re.sub('\\xc2\\xad\s\d+\s\\xc2\\xad\s\\x0c', '', my_str)
而不是找出具體的不必要的字符,你可以刪除一切不想要的東西:
re.sub('[^\\s!-~]', '', my_str)
這會丟棄所有字符:
!
是第一個可打印的字符, ~
是小數點后的最后一個128) 如果需要,您可以包含更多字符 - 只需調整字符類。
我有同樣的問題,我知道這不是有效的方式,但在我的情況下工作
result = re.sub(r"\\" ,",x,x",result)
result = re.sub(r",x,xu00ad" ,"",result)
result = re.sub(r",x,xu" ,"\\u",result)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.