Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';找不到模式的正确正则表达式_Java_Regex - Fatal编程技术网

Java Can';找不到模式的正确正则表达式

Java Can';找不到模式的正确正则表达式,java,regex,Java,Regex,我正在尝试获取符合以下模式的正则表达式: _Something6 当所有内容都必须以下划线开头,后跟大写字母,然后是任何字母或数字,但不再是下划线或任何特殊字符 我有这个,但正如你所看到的,我不是一个雷鬼天才 ^/_[A-Z][a-z+][0-9] 非常感谢您的帮助。应该是这样:^[A-Z][A-Z]+[0-9] 俗话说: ^行的开头 下划线 [A-Z]任何大写字母形式的A到Z(仅一个) [a-z]+任何小写字母形式的a到z(至少一次) [0-9]一个数字 并且为了确保它在那里结束(以数

我正在尝试获取符合以下模式的正则表达式:

_Something6
当所有内容都必须以下划线开头,后跟大写字母,然后是任何字母或数字,但不再是下划线或任何特殊字符

我有这个,但正如你所看到的,我不是一个雷鬼天才

^/_[A-Z][a-z+][0-9]

非常感谢您的帮助。

应该是这样:^[A-Z][A-Z]+[0-9]

俗话说:

  • ^
    行的开头
  • 下划线
  • [A-Z]
    任何大写字母形式的A到Z(仅一个)
  • [a-z]+
    任何小写字母形式的a到z(至少一次)
  • [0-9]
    一个数字
并且为了确保它在那里结束(以数字结尾),在它后面加一个
$

^_[A-Z][a-z]+[0-9]$

这应该是:^[A-Z][A-Z]+[0-9]

俗话说:

  • ^
    行的开头
  • 下划线
  • [A-Z]
    任何大写字母形式的A到Z(仅一个)
  • [a-z]+
    任何小写字母形式的a到z(至少一次)
  • [0-9]
    一个数字
并且为了确保它在那里结束(以数字结尾),在它后面加一个
$

^_[A-Z][a-z]+[0-9]$

像这样的方法应该会奏效:

^_[A-Z][A-Za-z\d]+$
^_[A-Z][A-Za-z]+\d+$
[A-Za-z]
也可以是
[A-z]|[A-z]
,如果这对您更有意义的话。
\d
[0-9]
的笔名-同样,请使用您更清楚的名称

您的示例有些不清楚,因此有几个示例:

String a = "_Som3th1ng6";    // This matches.
String b = "_Some_thing";    // This DOES NOT match.
如果您只想匹配以数字结尾的字符串,类似这样的方法可以工作:

^_[A-Z][A-Za-z\d]+$
^_[A-Z][A-Za-z]+\d+$
^
$
匹配字符串的开头和结尾,例如:

String a = "_Something6";     // This matches.
String b = " _Something6 ";   // This DOES NOT match.

如果这不是您想要的,请省略这两个字符。

类似的操作应该可以:

^_[A-Z][A-Za-z\d]+$
^_[A-Z][A-Za-z]+\d+$
[A-Za-z]
也可以是
[A-z]|[A-z]
,如果这对您更有意义的话。
\d
[0-9]
的笔名-同样,请使用您更清楚的名称

您的示例有些不清楚,因此有几个示例:

String a = "_Som3th1ng6";    // This matches.
String b = "_Some_thing";    // This DOES NOT match.
如果您只想匹配以数字结尾的字符串,类似这样的方法可以工作:

^_[A-Z][A-Za-z\d]+$
^_[A-Z][A-Za-z]+\d+$
^
$
匹配字符串的开头和结尾,例如:

String a = "_Something6";     // This matches.
String b = " _Something6 ";   // This DOES NOT match.

如果这不是您想要的,请省略这两个字符。

您可以尝试:
^[A-Z][A-z0-9]+
。首先是:

^_ : match the beginning of the string
[A-Z] : followed by an uppercase letter
[a-z0-9]+ : followed by any lowercase letters or numerics

你可以试试:
^[A-Z][A-z0-9]+
。首先是:

^_ : match the beginning of the string
[A-Z] : followed by an uppercase letter
[a-z0-9]+ : followed by any lowercase letters or numerics
试试这个:

^_[A-Z][\w&&[^_]]+$

试试这个:

^_[A-Z][\w&&[^_]]+$


一两个正则表达式教程可能是个好主意;它很有价值。您的
+
放错了位置,而且在开头附近有一个看似随机的
/
。为什么要尝试使用
/
。你是否见过javascript示例,或者你想转义一个字符(即“\”)?我正在阅读一些教程,我认为任何特殊字符都需要在它前面加一个/。下划线实际上不是特殊字符,也不需要转义。还有,你的斜杠打错了。例如,要匹配文字字符
[
,您需要正则表达式:
\[
。向我显示指向该教程的链接(它必须是\不是/)。无论如何,下划线不是一个特殊的字符。一两个正则表达式教程可能是个好主意;它很有价值。您的
+
放错了位置,并且在开头附近出现了一个看似随机的
/
。您为什么尝试使用
/
。您是否看到了一个javascript示例,或者您想转义一个字符(那应该是“\`)?我正在阅读一些教程,我认为任何特殊字符都需要在其前面加一个/。下划线实际上不是特殊字符,不需要转义。此外,您的斜杠错误。例如,要匹配文字字符
[
,您需要正则表达式:
\[
。向我显示指向该教程的链接(它必须是\not/)。无论如何,下划线不是特殊字符。我只有一个问题,就是这个匹配:\u something5它忽略了大写字母。感谢您的帮助。OP特别声明“然后是任何字母或数字”.@UrielHernández这是不可能的;它不能匹配小写字母作为第二个字符。
^[a-Z]?[a-Z]+[0-9]
应该将大写字母设置为可选。但是仍然只允许它作为@Raystorm之后的第一个字符,但是OP声明它不是可选的。我只有一个问题,那就是这个匹配:something5它忽略了大写字母。谢谢你的帮助。OP特别声明“然后是任何字母或数字”。@UrielHernández这是不可能的;它不能匹配小写字母作为第二个字符。
^[a-Z]?[a-Z]+[0-9]
应使大写字母可选。但仍然允许它仅作为@raystom之后的第一个字符,但OP声明它不是可选的。IMO
[a-z0-9]
将是字符范围的规范表示形式。第二个字符类中的|是不必要的,我实际上认为它与该上下文中的文字|匹配,因此例如“_Some | thing6”将与该正则表达式匹配。此外,由于您没有结束锚($),类似这样的内容也将匹配:“_sousome | thing6”“.IMO
[a-z0-9]
将是字符范围的规范表示形式。第二个字符类中的|是不必要的,我实际上认为它与该上下文中的文字|匹配,因此例如“|Some | thing6”将与此正则表达式匹配。此外,由于您没有结束锚($),类似的内容也将匹配:“_So_something 6”。
[\w&&[^\u]]
[a-zA-Z0-9]
(8对9个字符)写起来要短。但是你应该考虑到隐含这种语法的复杂性。不过我注意到你读过的作品希望
[\w&&[^\u]]
更短