我希望提取" 2"来自查询参数使用Regex -
http://www.example.com?param=1|2|3|4|test¶m1=5|6
使用正则表达式 -
.*param=.*\|(\w+)\|.*
我得到的输出是" 4"。
我甚至试过这个无济于事 -
.*param=.*\|(.*?)\|.*
非常感谢任何帮助。
由于
答案 0 :(得分:3)
你需要让第一个.*
非贪婪:
param=.*?\|(\w+)\|
或使其与管道不匹配:
param=[^|]*\|(\w+)\|
答案 1 :(得分:1)
使用正则表达式,只需在?
之后添加.*
即可将捕获为尽可能少的字符:
.*param=.*?\|(\w+)\|.*
答案 2 :(得分:1)