簡體   English   中英

同一個正則表達式在一個腳本中起作用,而在另一個腳本中不起作用

[英]Same regex works in one script, doesn't work in another

我有一個簡單的正則表達式( '(\\b) +-{1,} +(\\b)' ),它包含在腳本中( txt2tex.py ;行號17和48是重要的),可以將其指定為命令行中的另一個腳本( multilineRegex.py ;只需將一個正則表達式作為第一個參數,替換文本作為第二個參數,並將文件名作為第三個參數進行匹配)就可以了。

在txt2tex.py中求值時,正則表達式與給定的輸入文本不匹配,但是當我將其復制並粘貼到命令行並按以下方式調用multilineRegex.py時,它會按預期工作:

multilineRegex.py '(\b) +-{1,} +(\b)' '---' input.txt

我在玩正則表達式時注意到了這種差異。 關於我在做什么錯的任何想法嗎?

使用以下行來驗證此行為:

Here's something - arbit for you to think of.

細節:

  • 的Python:2.7.5
  • 作業系統:OS X 10.9.5

這是因為您的shell將\\b解釋為控制字符(退格鍵)。 您可以通過執行以下操作來證明這一點:

$ echo 'hello\bworld'
hellworld

將正則表達式提供給腳本時,請使用其他反斜杠對其進行轉義:

multilineRegex.py '(\\b) +-{1,} +(\\b)' '---' input.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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