regex 如何创建(xxx-number)格式的正则表达式规则?[已关闭]

zzwlnbp8  于 2023-03-04  发布在  其他
关注(0)|答案(2)|浏览(79)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

4天前关闭。
Improve this question
我有这样的字符串:

(jack-9) - london
(neil-11) - india

我想写一个规则,给的号码,我怎么做呢?预期输出:

9
11
tpgth1q7

tpgth1q71#

您可以使用\w+\-(\d+)

>>> import re
>>> s = """(jack-9) - london
... (neil-11) - india"""
>>> re.findall("\w+\-(\d+)", s, re.MULTILINE)
['9', '11']
xriantvc

xriantvc2#

您可以使用(?!-)\d+\b执行此操作
(?!)为负先行,\b为字边界

import re

regex = r"(?!-)\d+\b"

test_str = ("(jack-9) - london\n"
    "(neil-11) - india")

matches = re.finditer(regex, test_str, re.MULTILINE)

for matchNum, match in enumerate(matches, start=1):
    
    print ("Match {matchNum} : {match}".format(matchNum = matchNum, match = match.group()))

Regex demo here

相关问题