我有一个简单的正则表达式('(\b) +-{1,} +(\b)'
)包含在脚本中(txt2tex.py;行号17和48是重要的)并且可以提供给另一个脚本({{3} };只需要从命令行中将正则表达式作为第一个参数匹配,替换文本作为第二个参数,文件名称为第3个参数。
在txt2tex.py中计算时,正则表达式与给定的输入文本不匹配,但是当我将其复制并粘贴到命令行并按如下方式调用multilineRegex.py时,它按预期工作:
multilineRegex.py '(\b) +-{1,} +(\b)' '---' input.txt
当我正在玩正则表达式时,我注意到了这种差异。关于我做错了什么想法?
使用以下行验证此行为:
Here's something - arbit for you to think of.
详细说明:
答案 0 :(得分:1)
那是因为你的shell将\b
解释为控制字符(退格)。您可以通过执行:
$ echo 'hello\bworld'
hellworld
将正则表达式提供给脚本时,请使用额外的反斜杠转义它:
multilineRegex.py '(\\b) +-{1,} +(\\b)' '---' input.txt