对于我来说,我是一个相当奇怪的正则新手。我试图匹配所有不在引号内的单位数字(特别是1-9,我不需要零)。
例如,假设我有以下字符串:"1" or 1 ?
我需要匹配1
但不是"1"
。
有什么想法吗?
答案 0 :(得分:1)
我将在Python中解释这一点:
import re
pattern = re.compile('(?<!"|\d)\d(?!"|\d)')
print(pattern.findall('1,"2",34,5'))
# ['1', '5']
此正则表达式的关键部分((?<!"|\d)\d(?!"|\d)
)是否定前瞻(?!
)和否定后瞻(?<!
)。它们都用于防止正则表达式引擎匹配固定长度的字符串。