正则表达式?
正则表达式^(.*?)=
匹配到的是 key1= ,怎么之匹配key1 这个参数 展开
简答:把原先的
^(.*?)=
的最后的 等于号= 变成
(?=xxx): (positive) look ahead (assertion)=正向肯定断言
即可。
详解:
完整的正则是:
^(.*?)(?==)
即可,只匹配到
key1
具体解释:
(?=xxx)
表示,匹配(后面的字符串符合) xxx的情况,但是不包含在匹配的结果中
所以此处就是,匹配
key1=
中的 =,但结果中不包含 =
就变成你要的:结果中只包含 key1 了。
对应python的演示代码:
python
Python 3.8.0 (default, Jan 6 2020, 10:33:50)
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> inputStr = "key1=abc&key2=bcd&key3=efg"
>>> foundKey1 = re.search("^(.*?)(?==)", inputStr)
>>> print(foundKey1)
<re.Match object; span=(0, 4), match='key1'>
>>> key1Str = foundKey1.group(1)
>>> print(key1Str)
key1
引申:
正向肯定断言 属于 环视断言
具体详见我的教程:
其他不变,
试一下看。