我刚刚开始使用 python 的正则表达式部分,我以为我理解了这个概念,但是当我开始编程时,我无法理解。给出的问题陈述是设计一个正则表达式
我写的代码是
import re
n=int(input())
patt=r'^(?=.*[A-Z]).{2,}(?=.*[0-9]).{3,}(?=.*[\w]?){10}$'
for x in range(n):
match=re.findall(patt,str(input()))
#print(match)
if match:
print("Valid")
else:
print("Invalid")
Run Code Online (Sandbox Code Playgroud)
我首先从第一部分开始,即应该包含“它必须至少包含 2 个大写英文字母字符”,(?=.*[A-Z]).{2,}因为它会搜索两个以上的字符,并将使用前瞻断言对于第二部分,我应用了相同的和对于第三部分,即它应该只包含字母数字字符,我应用了(?=.*[\w]?)这三个似乎可以工作,但是当第四个和第五个条件出现时,即不应该重复任何字符,并且我最后尝试使用的字符必须正好是 10{10}个,但没有用现在整个事情似乎都被打破了。任何人都可以指导我如何使用正则表达式以及什么是积极的前瞻。
#include<stdio.h>
#include<conio.h>
/* Function Declaration
int pal(int x); */
/*Declaring Second Function*/
int rev(int x);
int main()
{
int a, b, c;
clrscr();
printf("Enter The Number Which You Want To Check Is Palindrome Or Not\n");
scanf("%d", &a);
b = rev(a);
printf("%d", b);
if(b == a) {
printf("%d Is A Palindrome Number", a);
} else {
printf("%d Isn't A Plaindrome Number", a);
}
getch();
return(0);
}
int rev(int x)
{
int d = 0;
while(x) {
d = d * 10 …Run Code Online (Sandbox Code Playgroud)