簡體   English   中英

在python正則表達式中使用unicode字符的正確方法是什么

[英]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)

這會丟棄所有字符:

  • 空格(空格,制表符,換行符等)
  • 可打印的“普通”ascii字符( !是第一個可打印的字符, ~是小數點后的最后一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM