2024-09-25 02:30:56 发布
网友
我要编写一个正则表达式,它捕获一个字符串:“N个字母后跟2或3个数字”,其中N作为函数的参数传递。你知道吗
我所做的是:"[a-zA-Z]{" + "{number}".format(number=N) + "}[0,9]{2,3}"但这是不对的。哪里出错了?你知道吗
"[a-zA-Z]{" + "{number}".format(number=N) + "}[0,9]{2,3}"
对于N=3,它应该匹配:"abc12", "abc123",而不是"a1", "abc1", "abc1234"。你知道吗
N=3
"abc12", "abc123"
"a1", "abc1", "abc1234"
第二个块仅捕获数字0和9,请将其更改为一个范围:
0
9
"[a-zA-Z]{%d}[0-9]{2,3}"%N
编辑: 要捕获不匹配的内容,您需要在regex中添加开始和结束条件。这可以通过以下几种方式实现:
起点和终点线指定如果您的图案要单独在一条线上:
"^[a-zA-Z]{%d}[0-9]{2,3}$"%N
其中^表示行的开始,$表示行的结束
^
$
您可以说在模式后匹配特定字符:
"[a-zA-Z]{%d}[0-9]{2,3}[^0-9]+"
括号内的^会说“与这些字符不匹配”。我对lookaheads/lookbacks不够熟悉,无法用它们给您一个很好的答案,但是可以找到文档here
您需要为表达式添加锚定:
^[a-z]{3}\d{2,3}$
见a demo on regex101.com。
^[a-z]{n}\d{2,3}$ # ^^^
第二个块仅捕获数字
0
和9
,请将其更改为一个范围:编辑: 要捕获不匹配的内容,您需要在regex中添加开始和结束条件。这可以通过以下几种方式实现:
文本锚定
起点和终点线指定如果您的图案要单独在一条线上:
其中
^
表示行的开始,$
表示行的结束指定不匹配
您可以说在模式后匹配特定字符:
括号内的
^
会说“与这些字符不匹配”。我对lookaheads/lookbacks不够熟悉,无法用它们给您一个很好的答案,但是可以找到文档here您需要为表达式添加锚定:
见a demo on regex101.com。
一般来说:
相关问题 更多 >
编程相关推荐