Regex允许字符串以字母开头,但不具有特定的字符集

Regex允许字符串以字母开头,但不具有特定的字符集,regex,Regex,我需要一个能保证两件事的正则表达式- 我的字符串必须以字母开头。字母可以是小写或大写。 字符串不能包含某些指定的字符。 由于涉及到两个条件,我尝试使用regex?=中的正向前瞻操作符设计我的regex 我的字符串正则表达式是 (?=^[a-zA-Z]$)(?=.[^"/',?%$@!#%^&+=|{}<>]) 其中第一个条件是确保我的字符串以字母开头,第二个条件是确保第二个条件中定义的字符被阻止。对我来说还是不行。我错过了什么?有更好的方法吗?我不知道为什么有两个条件让你认

我需要一个能保证两件事的正则表达式-

我的字符串必须以字母开头。字母可以是小写或大写。 字符串不能包含某些指定的字符。 由于涉及到两个条件,我尝试使用regex?=中的正向前瞻操作符设计我的regex

我的字符串正则表达式是

(?=^[a-zA-Z]$)(?=.[^"/',?%$@!#%^&+=|{}<>])

其中第一个条件是确保我的字符串以字母开头,第二个条件是确保第二个条件中定义的字符被阻止。对我来说还是不行。我错过了什么?有更好的方法吗?

我不知道为什么有两个条件让你认为应该使用lookaheads。在这种情况下,两个字符类应执行以下操作:

^[a-zA-Z][^"\/',?%$@!#%^&*+=|{}<>]*$

第一个字符类只匹配起始字母,第二个字符类匹配其余的不匹配符号。

我不知道为什么有两个条件会让你认为应该使用lookaheads。在这种情况下,两个字符类应执行以下操作:

^[a-zA-Z][^"\/',?%$@!#%^&*+=|{}<>]*$

第一个字符类只匹配起始字母,第二个字符类不匹配其余的符号。

您有几个问题:

您的第一个前瞻断言字符串仅为一个字符 多亏了最后的美元;和 第二个前瞻仅声明第二个字符不是被阻止的字符之一,因为在字符类之后没有量词。 这样做会更好:

(?=^[a-zA-Z])(?=[^"/',?%$@!#%^&+=\`|{}<>]+$)

请注意,由于[a-zA-Z]不是阻塞组的一部分,因此您不需要。要跳过第二个前瞻中的第一个字符。

您有几个问题:

您的第一个前瞻断言字符串仅为一个字符 多亏了最后的美元;和 第二个前瞻仅声明第二个字符不是被阻止的字符之一,因为在字符类之后没有量词。 这样做会更好:

(?=^[a-zA-Z])(?=[^"/',?%$@!#%^&+=\`|{}<>]+$)

请注意,由于[a-zA-Z]不是阻塞组的一部分,因此您不需要。跳过第二个前瞻中的第一个字符。

Hi!Akhil,我看到你是新来的,欢迎你!首先,您应该确保通过添加反斜杠来替换特殊字符,例如:\/Hi!Akhil,我看到你是新来的,欢迎你!首先,应确保通过添加反斜杠来替换特殊字符,例如:\/