2
假設我想匹配:正則表達式:如何匹配前綴+共享OR共享+後綴?
PREFIX 東西
或:
東西字尾
但可以肯定的NOT:
PREFIX 東西字尾
凡東西一定的共享模式,並PREFIX /字尾是在現實中也一定不同的模式。
我可以(或以爲)在Python中解決這個問題。然而,這個構造適用於'PREFIXabc',但不適用於'abcPOSTFIX'。如何解決這個問題?
import re
prefix_pattern = "PREFIX"
postfix_pattern = "POSTFIX"
shared_pattern = "[a-zA-z]*"
test_pattern ="("+prefix_pattern+shared_pattern+")|("+shared_pattern+postfix_pattern+")$"
pattern = re.compile(test_pattern)
#test = 'PREFIXabc' # Match
test = 'abcPOSTFIX' # No match
x = re.match(pattern,test)
if x:
print(x.group())
else:
print("Not found")
那麼它似乎不是真正的輸入,你不需要'$'? – revo
請注意:您的'$'隻影響第二種選擇。爲了使它同時受到影響,可以使用'test_pattern =「({0} {1} | {1} {2})$」格式(prefix_pattern,shared_pattern,postfix_pattern) –