Regex 下划线以及正则表达式

Regex 下划线以及正则表达式,regex,Regex,我需要带连字符(-)和下划线()的字母数字字符串。但是-和-不能单独出现。必须有一些带有-或-的aplha或字母数字文本 abc- allowed abc_abc-xyz allowed abc896 allowed 89abc allowed abc_ not allowed abc- not allowed - not allowed _not allowed -- not allowed ________ --- not allowed 这: expression可以完成上面提到的所有操

我需要带连字符(
-
)和下划线(
)的字母数字字符串。但是
-
-
不能单独出现。必须有一些带有
-
-
的aplha或字母数字文本

abc- allowed
abc_abc-xyz allowed
abc896 allowed
89abc allowed
abc_ not allowed
abc- not allowed
- not allowed
_not allowed
-- not allowed
________ --- not allowed
这:


expression可以完成上面提到的所有操作,但是使用
-
我还想添加
下划线。而
-
-
不能在开头或结尾出现。

你离它很近:

^[0-9a-zA-Z]([-_]*[0-9a-zA-Z]+)*$
更好的办法是:

^[0-9a-zA-Z]([-_]+[0-9a-zA-Z]|[0-9a-zA-Z]+)*$

你离它很近:

^[0-9a-zA-Z]([-_]*[0-9a-zA-Z]+)*$
更好的办法是:

^[0-9a-zA-Z]([-_]+[0-9a-zA-Z]|[0-9a-zA-Z]+)*$
您可以尝试以下代码:

^[a-zA-Z0-9]*[a-zA-Z0-9_-]+[a-zA-Z0-9]*$
您可以尝试以下代码:

^[a-zA-Z0-9]*[a-zA-Z0-9_-]+[a-zA-Z0-9]*$
我将其改写为:

^[a-zA-Z0-9]+([-_]*[a-zA-Z0-9]+)*$
我将其改写为:

^[a-zA-Z0-9]+([-_]*[a-zA-Z0-9]+)*$

下面是我写这篇文章的方式:

^(?![-_])[-a-zA-Z0-9_]+(?<![-_])$
^(?![-][-a-zA-Z0-9+(?)?
这是一个红宝石:

^[-a-zA-Z0-9\]+$
将是一个仅包含所需字符的字符串。前向和后向可确保字符串不会以
-
开头或结尾

abc- allowed
abc_abc-xyz allowed
abc896 allowed
89abc allowed
abc_ not allowed
abc- not allowed
- not allowed
_not allowed
-- not allowed
________ --- not allowed

您可能会将
[-a-zA-Z0-9\]
更改为
[-\w]
,因为
\w
通常相当于
[a-zA-Z0-9\]
,但Unicode选项可以更改其含义,以包括来自其他语言的字母。

以下是我编写此代码的方式:

^(?![-_])[-a-zA-Z0-9_]+(?<![-_])$
^(?![-][-a-zA-Z0-9+(?)?
这是一个红宝石:

^[-a-zA-Z0-9\]+$
将是一个仅包含所需字符的字符串。前向和后向可确保字符串不会以
-
开头或结尾

abc- allowed
abc_abc-xyz allowed
abc896 allowed
89abc allowed
abc_ not allowed
abc- not allowed
- not allowed
_not allowed
-- not allowed
________ --- not allowed

您可能会将
[-a-zA-Z0-9\]
更改为
[-\w]
,因为
\w
通常等同于
[a-zA-Z0-9\]
,但Unicode选项可以更改其含义,以包括来自其他语言的字母。

这将允许单个
-
和/或
-
以任意顺序显示,但不能同时显示。还允许直接字母数字:

^[a-zA-Z0-9]+[-_]{0,1}[^-_]+[-_]{0,1}[^-_]+$
这一替代方案似乎也可行:

^[^-_]+[-_]{0,1}[^-_]+[-_]{0,1}[^-_]+$

这将允许单个
-
和/或
-
以任意顺序出现,但不能同时出现。还允许直接字母数字:

^[a-zA-Z0-9]+[-_]{0,1}[^-_]+[-_]{0,1}[^-_]+$
这一替代方案似乎也可行:

^[^-_]+[-_]{0,1}[^-_]+[-_]{0,1}[^-_]+$

字符串能否以-或u?例如abc或-abc开头(nvm,您在更新中回答了它)您的示例中既有
abc-allowed
又有
abc-notallowed
,那么它是哪一个呢?看起来它是不允许的,因为“and-和u”不能出现在开头或结尾。字符串能否以-或u?例如u abc或-abc开头(nvm,您在更新中回答了这个问题)您的示例中既有
abc-allowed
又有
abc-notallowed
,那么是哪一个呢?看起来是不允许的,因为“and-and uuu”不能出现在开头或结尾。这将与单个字符输入不匹配。您允许在表达式开头使用空格和标点符号。对于包含大量字母/数字且结尾带有
-
的字符串,这很容易发生灾难性的回溯,例如
abcdefghijklmnopqrstuvwxyz-
。这将与您输入的单个字符不匹配'我们允许在表达式的开头使用空格和标点符号。对于包含大量字母/数字且末尾带有
-
的字符串,这很容易出现灾难性回溯,例如
abcdefghijklmnopqrstuvxyz-
。对于包含大量字母/数字且带有的字符串,这很容易出现灾难性回溯de>-
-
结尾,例如
abcdefghijklmnopqrstuvwxyz-
()。对于一个包含大量字母/数字且结尾带有
-
的字符串,例如
abcdefghijklmnopqrstuvxyz-
()。这至少需要三个字符,并允许类似于
%a&
的内容。这至少需要三个字符,并允许类似于
%a&
的内容。