Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
无空格Word的Java模式_Java_Regex_String_Pattern Matching - Fatal编程技术网

无空格Word的Java模式

无空格Word的Java模式,java,regex,string,pattern-matching,Java,Regex,String,Pattern Matching,我想知道一个单词的正则表达式是什么,我似乎可以在任何地方找到它?我试图匹配“Loop num+5”的字符串,我想提取“Loop num”部分。我不确定regex会怎么做 Pattern pattern = Pattern.compile("(loop-.*)"); Matcher matcher = pattern.matcher("5 * loop-num + 5"); if(matcher.find()){ String extractedString = matcher.group

我想知道一个单词的正则表达式是什么,我似乎可以在任何地方找到它?我试图匹配“Loop num+5”的字符串,我想提取“Loop num”部分。我不确定regex会怎么做

Pattern pattern = Pattern.compile("(loop-.*)");
Matcher matcher = pattern.matcher("5 * loop-num + 5");
if(matcher.find()){
    String extractedString = matcher.group(1);
    System.out.println(extractedString);
}

从这里得到:“循环num + 5”

如果你真的打算使用正则表达式来匹配单词(包含字母的实体,可选地用连字符(s)分裂),你需要考虑下面的正则表达式:

\b\pL+(?:-\pL+)*\b

说明:

  • \b
    -前导词边界
  • \pL+
    -1个或多个Unicode字母
  • (?:-\pL+)*
    -零个或多个。。。
    • -
      -文字连字符
    • \pL+
      -1个或多个Unicode字母
  • \b
    -尾随词边界
在:


注意:如果单词可能包含数字(不在起始位置),您可以与
模式.UNICODE\u字符\u类
一起使用。这里,<代码> \W/COD>将匹配字母、数字和下划线。

< P>如果您真的计划使用正则表达式来匹配单词(包含字母的实体,可选地用连字符(s)拆分),则需要考虑以下正则表达式:

\b\pL+(?:-\pL+)*\b

说明:

  • \b
    -前导词边界
  • \pL+
    -1个或多个Unicode字母
  • (?:-\pL+)*
    -零个或多个。。。
    • -
      -文字连字符
    • \pL+
      -1个或多个Unicode字母
  • \b
    -尾随词边界
在:


注意:如果单词可能包含数字(不在起始位置),您可以与
模式.UNICODE\u字符\u类
一起使用。在这里,
\w
将匹配字母、数字和下划线。

请发布到目前为止您已经尝试过的内容。。给我们一些代码:)@Kami抱歉,但是我已经添加了我现在尝试过的内容。你想要数字还是想要提取“loop num”字符串?可能是这样的
loop*-\w{1,3}
l\w{3}-\w{3}
l\w{3}-n\w{2}
取决于你通常想要什么。这些表达很幼稚,但你们需要描述更多你们想从字符串中删掉的东西。@samuel,这是我需要的部分!只是做了一些调整,它的工作!Regex:loop-[A-Za-z]\\w+请发布到目前为止您已经尝试过的内容。。给我们一些代码:)@Kami抱歉,但是我已经添加了我现在尝试过的内容。你想要数字还是想要提取“loop num”字符串?可能是这样的
loop*-\w{1,3}
l\w{3}-\w{3}
l\w{3}-n\w{2}
取决于你通常想要什么。这些表达很幼稚,但你们需要描述更多你们想从字符串中删掉的东西。@samuel,这是我需要的部分!只是做了一些调整,它的工作!正则表达式:循环-[A-Za-z]\\w+