无法找到具有前瞻/后视功能的正则表达式
Trouble finding a regular expression with lookahead/ lookbehind funcftion
我在正确设置正则表达式方面遇到了问题。我正在寻找以下字符串中的特定数字。例如,下面是一些字符串以及我正在使用的正则表达式
matcher = re.compile(r'(?<=[/\- ])([0-9]+)')
string = 'Redundant 100/70/50/50-0/0/0/0; EX-SEP ANN IMPLANT MAX. '
string2 = 'Big High 200/40/40/0/0-80/60/40/0/0; EX-WP 9months 7. '
结果是
['100', '100', '85', '50', '0', '0', '0', '0']
['100', '80', '50', '0', '0', '80', '60', '40', '0', '0', '9', '7']
例如,我想找出一种方法来仅获取“/”旁边的数字,而不获取第二个字符串中的“9”和“7”。我找不到执行此操作的方法,并尝试使用后向表达式,但如果不检索字符串中的其他数字,就无法获得我想要的数字。
这对我来说是全新的,对于为什么我没有得到每个字符串的预期答案的任何帮助,我将不胜感激
您可以使用
匹配接近/
或-
的数字序列
(?<=[/-])[0-9]+|[0-9]+(?=[/-])
查看 regex demo 和正则表达式图:
详情
(?<=[/-])[0-9]+
- 一个或多个前面有 /
或 -
的数字
|
- 或
[0-9]+(?=[/-])
- 一位或多位紧跟 /
或 -
的数字。
我在正确设置正则表达式方面遇到了问题。我正在寻找以下字符串中的特定数字。例如,下面是一些字符串以及我正在使用的正则表达式
matcher = re.compile(r'(?<=[/\- ])([0-9]+)')
string = 'Redundant 100/70/50/50-0/0/0/0; EX-SEP ANN IMPLANT MAX. '
string2 = 'Big High 200/40/40/0/0-80/60/40/0/0; EX-WP 9months 7. '
结果是
['100', '100', '85', '50', '0', '0', '0', '0']
['100', '80', '50', '0', '0', '80', '60', '40', '0', '0', '9', '7']
例如,我想找出一种方法来仅获取“/”旁边的数字,而不获取第二个字符串中的“9”和“7”。我找不到执行此操作的方法,并尝试使用后向表达式,但如果不检索字符串中的其他数字,就无法获得我想要的数字。
这对我来说是全新的,对于为什么我没有得到每个字符串的预期答案的任何帮助,我将不胜感激
您可以使用
匹配接近/
或-
的数字序列
(?<=[/-])[0-9]+|[0-9]+(?=[/-])
查看 regex demo 和正则表达式图:
详情
(?<=[/-])[0-9]+
- 一个或多个前面有/
或-
的数字|
- 或[0-9]+(?=[/-])
- 一位或多位紧跟/
或-
的数字。