正则表达式的哪些特性是标准的,哪些是特殊的?
如果我想在不同的上下文、语言、平台中使用相同的正则表达式,我应该做什么,而不是做什么?
我想使用子shell的魔力和python子进程模块的重定向,但它似乎不起作用,抱怨意外的令牌是括号.例如,命令
cat <(head tmp)
传递给子进程时给出了这个
>>> subprocess.Popen("cat <(head tmp)", shell=True)
<subprocess.Popen object at 0x2b9bfef30350>
>>> /bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `cat <(head tmp)'
Run Code Online (Sandbox Code Playgroud) 我试着守护一些代码,但是我遇到了麻烦.
如果我用tklogger()调用代码,它运行得很好.但是,如果我在守护进程上下文中调用它,我会得到以下跟踪:
Traceback (most recent call last):
File "./tklogger.py", line 103, in <module>
tklogger()
File "./tklogger.py", line 41, in tklogger
conn, addr = s.accept()
File "/usr/lib/python2.6/socket.py", line 195, in accept
sock, addr = self._sock.accept()
socket.error: [Errno 9] Bad file descriptor
close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
#!/usr/bin/python
# tklogger, a TK10X GPS tracking device logger
import socket
import time
import daemon
HOST = '' # Bind to all interfaces
PORT = 9000 # …Run Code Online (Sandbox Code Playgroud) 在我坐下来开始讨价还价之前,我以为我会来这里看看你们是否有任何提示,或者即使之前已经完成了这样的事情.
我想在python程序中重新创建类似语法的基本shell.换句话说,当人们使用python运行文件时,他们会收到一些提示
>>
Run Code Online (Sandbox Code Playgroud)
对于简单的事情,使用选项解析器来说
opt.parse_args(input.split(" "))
Run Code Online (Sandbox Code Playgroud)
工作得很好,但现在我不仅想要使用'\'字符来转义特殊字符,例如空格,还要将引用的字符串视为单个参数,就像在unix shell中一样.
是否存在可能对此有帮助的任何内容?
谢谢你的任何建议! - 追逐
我有一个列表,其中包含以下形式的元组:
[('s1', 's2'),('s3','s32')...('s2','s1')]`
Run Code Online (Sandbox Code Playgroud)
考虑到顺序不重要,我如何计算不同元组的数量?
示例:('s1','s2')与...相同('s2','s1')
我正在编写一个python片段来修复HTML代码中标题的大小.到目前为止,我已经提出了这个代码:
pattern = re.compile("<h1>(.*)</h1>|<h2>(.*)</h2>|<h3>(.*)</h3>|<h4>(.*)</h4>|<h5>(.*)</h5>|<h6>(.*)</h6>")
def replace(m):
contents = m.group(1)
replacement = contents[0] + contents[1:].lower()
return replacement
Run Code Online (Sandbox Code Playgroud)
然后,给定a line,我使用的转换是line = pattern.sub(replace, line).
这不起作用,因为m.group(1)总是None,而我希望它是与我的正则表达式中的任何子句相对应的匹配.由于模式不能在python中共享一个名字,我有点不知所措.
一个显而易见的解决方案是将我使用的所有模式分组,但随后<h1>bla</h2>会被识别.这不好,因为<h1><a href="...">Bla</a></h1> <h2>Bla</h2>应该产生两个匹配(<a href="...">Bla</a>,和<a href="...">Bla</a>)
想法?