Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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可读文本字解析regexp_Java_Regex_Parsing - Fatal编程技术网

Java可读文本字解析regexp

Java可读文本字解析regexp,java,regex,parsing,Java,Regex,Parsing,首先,我对[A-Za-z]+ 现在我需要解析以字母“s”结尾的单词,但我应该跳过以大写字母开头的两个或两个以上的单词。 我尝试了一些类似于[\n\\][A-Za-z]{0,1}[A-z]*s[\\.\\,\\?\!\\:]+的方法,但由于某种原因,它的第一部分[\n\\\]没有看到行的开头 以下是示例 文本是丹尼斯每天上学 但唯一被解析的单词是goeS 有什么想法吗?怎么样 \b[A-Z]?[a-z]*x\b \b是一个词的边界,我想这就是你想要的。?是{0,1}的较短形式,那么 \b[A-Z

首先,我对
[A-Za-z]+
现在我需要解析以字母“s”结尾的单词,但我应该跳过以大写字母开头的两个或两个以上的单词。
我尝试了一些类似于
[\n\\][A-Za-z]{0,1}[A-z]*s[\\.\\,\\?\!\\:]+
的方法,但由于某种原因,它的第一部分
[\n\\\]
没有看到行的开头

以下是示例
文本是丹尼斯每天上学
但唯一被解析的单词是goeS

有什么想法吗?

怎么样

\b[A-Z]?[a-z]*x\b
\b
是一个词的边界,我想这就是你想要的。
{0,1}

的较短形式,那么

\b[A-Z]?[a-z]*x\b
\b
是一个词的边界,我想这就是你想要的。
{0,1}

的缩写形式,请尝试以下操作:

Pattern p = Pattern.compile("\\b([A-Z]?[a-z]*[sS])\\b");
Matcher m = p.matcher("Denis goeS to school every day!");
while(m.find())
{
  System.out.println( m.group(1) );
}
<> > ReEX匹配从一个空格或2个大写字母开始的每个单词,只包含中间小写字符,在S或S.

结束。 在您的示例中,这将匹配
Denis
goeS
。如果您只想匹配大写字母S,请将表达式更改为“\\b([A-Z]?[A-Z]*[S])\\b”哪个将匹配
goeS
goeS
,而不是
goeS
goeS
goeS
请尝试以下操作:

Pattern p = Pattern.compile("\\b([A-Z]?[a-z]*[sS])\\b");
Matcher m = p.matcher("Denis goeS to school every day!");
while(m.find())
{
  System.out.println( m.group(1) );
}
<> > ReEX匹配从一个空格或2个大写字母开始的每个单词,只包含中间小写字符,在S或S.

结束。
在您的示例中,这将匹配
Denis
goeS
。如果只想匹配大写字母,请将表达式更改为
“\\b([A-Z]?[A-Z]*[S])\\b”
哪个将匹配
goeS
goeS
,而不是
goeS
goeS
我需要解析以字母“x”结尾的单词如何适应那里?
我需要分析以字母“x”结尾的单词
如何适应那里?谢谢!这么完整的回答!非常感谢。这么完整的回答!