1

我正在尝试将正则表达式作为我的 python 程序的参数(这自然是一个字符串),并简单地将它与另一个字符串匹配。

假设我运行它

python program.py 'Hi.there'

然后我希望能够接受该输入(称之为输入)并说出它是否与“HiTthere”匹配(它应该)。

我该怎么做?我对正则表达式没有经验。

4

2 回答 2

3

据我了解,您正在寻找类似的东西:

import sys, re

regex = sys.argv[1]

someOtherString = 'hi there'

found = re.search(regex, someOtherString)
print('ok' if found else 'nope')

使用表达式作为第一个参数运行此程序:

> python test.py hi.th
ok
> python test.py blah
nope

与 javascript 不同,python 正则表达式是简单的字符串,因此您可以直接将sys.argv[1]其用作re.search.

于 2013-02-16T10:01:38.647 回答
2

Python 3 语法(Python 2,使用print xxx代替print(xxx)):

import re

if re.match(r'^Hi.there$', 'HiTthere'): # returns a "match" object or None
    print("matches")
else:
    print("no match")

请注意,我正在使用锚点^$保证匹配跨越整个输入。^匹配字符串的开头并$匹配字符串的结尾。

有关更多详细信息,请参阅文档。

于 2013-02-16T06:23:28.643 回答