Java 我怎么写这个图案?
我目前正在开发一个从一个巨大的文本文件中提取某些字母的类,而我似乎无法为它创建一个合适的模式来跟踪我想要的内容。 我使用的模式是:Java 我怎么写这个图案?,java,regex,Java,Regex,我目前正在开发一个从一个巨大的文本文件中提取某些字母的类,而我似乎无法为它创建一个合适的模式来跟踪我想要的内容。 我使用的模式是: Pattern p = Pattern.compile("'[A-Z ]'|'[.]'"); 当搜索类似以下内容时:('L','O','B','I') ,我的Matcher返回'L'O'B'I'(我使用它在StringBuilder中存储每个匹配项),但不返回空间,我需要它 我为任何演示文稿的缺陷道歉,但我仍然习惯于在这里提问 编辑: 我想得到的是填字游戏的答案
Pattern p = Pattern.compile("'[A-Z ]'|'[.]'");
当搜索类似以下内容时:('L','O','B','I')
,我的Matcher返回'L'O'B'I'(我使用它在StringBuilder中存储每个匹配项),但不返回空间,我需要它
我为任何演示文稿的缺陷道歉,但我仍然习惯于在这里提问
编辑:
我想得到的是填字游戏的答案。我有一个类,它从纵横字谜中获取代码并将其保存在文本文件中。之后,我想运行此代码以获得答案,其组织方式如下:
L[0] = new Array('S','O','L','O','M','I','L','L','O','','B','I','B','L','I','O','','C','A','O');
L[1] = new Array('A','R','T','R','O','S','E','','D','I','N','A','M','I','T','E','','E','U','');
L[2] = new Array('R','C','P','','R','I','C','A','','','','','','','','','','','','');
L[3] = new Array('R','A','','','A','S','A','','A','N','O','R','M','L','','P','U','T','I','N');
L[4] = new Array('O','','','','T','','','','','','','','','','','','','','','');
L[5] = new Array('','','','','O','','','','','','','','','','','','','','','');
我需要空格来分隔一个答案和另一个答案,当前我的类返回的输出是
SOLOMILLOBIBLIOCAOARTROSEDINAMITEEURCPRICARAASAANORMLPUTINOTO`
在我删除了所有多余的不需要的符号之后。
我需要它返回的是:
SOLOMILLO BIBLIO CAO ARTROSE DINAMITE EU RCP RICA RA ASA ANORML PUTIN O T O
你可以
- 将空的
替换为'
(内部有空格)`'
- 将
包围的所有字符(包括空格)添加到StringBuilder中(您似乎已经有了此步骤,'
在这里可能还可以)李>'([A-Z])”
- 将生成器转换为字符串
- 修剪以删除起点和终点处的空格
- 用一个空格替换两个或多个空格(
可能有用)replaceAll(\\s{2,},“”)
如果您还想添加空格以分隔每个行的结果,请考虑分别解析每行并在每个解析行之后添加空间。
您似乎对您要查找的内容有点困惑。一方面,您希望查找A-Z或空格。另一方面,您希望查找任何角色。条件的第二部分包括第一部分。您可以使用以下方法获得您想要的:
Pattern p = Pattern.compile("'.*?'");
也许你能更好地定义你想要达到的目标?某些字母很模糊。你能告诉我们你是如何使用这种图案的吗?顺便说一句,
'[A-Z]'.[.]'
可以重写为可能更可读的'[A-Z.]'
。另外,您问题中的输入似乎没有任何空格被'
包围。您能提供一些示例文本和预期结果吗?您的字符串中有一个'
,在'
中有一个空字符串。如果还需要提取空字符串,可以将?
量词(0或1次)与[a-Z.]
字符类一起使用:“'[a-Z.]?”
。谢谢,现在可以了,但显然我删除不需要的字符的方法也是删除空格。我正在像这样删除它们:String[]list=s.split(“[']”)。你知道如何让空格也出现吗?@Azerog我不太确定你想通过这个拆分实现什么。无论如何,我用代码示例的链接更新了我的答案。很抱歉,我以前没有注意到。谢谢。@Azerog没有什么可道歉的:)我把那个链接放在了你的评论之后。