爪哇 - 搜索拥有超过1个大写字母单词

只需要你就一个任务在Java中进行搜索的帮助。 我需要从文件中读取一行,使一切有超过1个大写字母在其中的单词的列表。

例如,如果该行是:有七颗行星在这个宇宙

结果应该是:SEVEN与宇宙

我可以通过分割成字,但一些如何不能够使用正确的正则表达式来搜索这些词读线。

下面是一个小例子,我用,但它虽然我认为它应该返回true返回false。

的System.out.println(“这”.matches(“[AZ] {2}”));

任何人都可以请看看这一点,并建议如何实现我的结果呢? 感谢所有帮助。

谢谢,

AJ

--------------解决方案-------------

[AZ]{2,}指2个或更多的连续大写字母。 你可以使用[AZ].*[AZ]这将允许任何其他字符两个大写字母之间出现。

或者,你并不真的需要使用正则表达式这一点。 如果你愿意,你可以每个字符只是遍历字符串中,并使用Character.isUpperCase和计数匹配的字符数。

也许[az]*[AZ][az]*[AZ][az]*可以工作..事实是,与计算{..}不允许两个字母之间的字符。

你列出的正则表达式是不会工作,因为它会搜索2以上大写字母的邻接序列。

我认为你需要做的是写一个表达式,可以让你允许双方小写字母。

我不记得确切的语法(我要去检查),但像.*[AZ].*[AZ].*将确保你有两个上例

\b(?:[az]*[AZ]){2}[az]*\b

将匹配至少包含两个大写字母的单词。

如果要允许包含其他字母比ASCII字符,使用

\b(?:\p{Ll}*\p{Lu}){2}\p{Ll}*\b

当然,在Java字符串,你需要逃跑(双)反斜线。

所以,你得到:

Pattern regex = Pattern.compile("\\b(?:\\p{Ll}*\\p{Lu}){2}\\p{Ll}*\\b");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
// matched text: regexMatcher.group()
// match start: regexMatcher.start()
// match end: regexMatcher.end()
}

您的当前正则表达式匹配的两个或更多个大写字母,而不是倍数传遍字仅一个序列。 所以,你会匹配THistHIS ,但不是ThiS ,你已经发现。

你需要寻找一个大写字母,或许有些低的情况下,又接连上。 还是在正则表达式[AZ]\w*?[AZ]

如果你要搜索的整个字符串,而无需先被分割,然后包括两端的其他文字字符的可能性,并让表情捕捉(\w*?[AZ]\w*?[AZ]\w*)

另外请注意,我们使用的是不愿意量词,让他们停止在在前两种情况下尽早匹配,与正常(贪婪)量词在最后拿起单词的其余部分。 了解更多关于这里的各种数量。

Pattern pat = Pattern.compile("\\w*[AZ]\\w*[AZ]\\w*");
Matcher matcher = pat.matcher("There are SeVen Planets In this UniverSe");
while ( matcher.find() ) {
System.out.println(matcher.group());
}

打印

SeVen
UniverSe

我是可怕的与正则表达式,但这样有可能是一个更简单的方法。 这种方式真的很容易,虽然明白:开始一个字,匹配0个或更多字符,则大写字符,然后0个或多个字符,然后又大写字符,然后0个或多个字符的开始。

我用这个正则表达式/[AZ].[AZ]+/

分类:java的 时间:2012-01-01 人气:0
本文关键词: 正则表达式,搜索,JAVA
分享到:

相关文章

  • Java正则表达式搜索块/字符串/字的段落 2013-09-23

    我是新来的Java正则表达式. 考虑follwoing段: 互联网是使用该标准的互联网协议套件(TCP / IP)服务于数十亿世界各地的用户互连计算机网络的全球系统. 它是一个网络的网络,它由数以百万计的私人和公共,学术,业务,和政府网络的地方到全球范围是由铜线,光纤电缆,无线连接,以及其他技术相联系. 互联网携带信息资源和服务繁多,万维网(WWW),基础设施,以支持电子邮件的最显着的相互联系的超文本文件. 此外,它支持流行的服务,如在线聊天,文件传输和文件共享,游戏,电子商务,社交网络,出版,

  • 正则表达式搜索文件中使用Java 2014-07-08

    我问这里应该是非常常见的,但我的目的是找出最好的方式做到这一点. 我有一个文件列表(比如n)的一个目录中 - 所有这些都被归类通过扩展. 我有一个包含正则表达式模式(比如米),我想寻找一个特定类型的所有这些文件CSV文件. 我想有一个最终的输出,其中我有一个正则表达式,文件名,行和行号列. 下面是我对我应该如何处理这个几个问题: 有没有办法在那里我可以避开米* n个操作? 什么是快 - 读取文件,缓存内容和存储中说每一行阵列中的所有正则表达式搜索之前,或者我应该采取一个正则表达式,一行读取文件中

  • 文件系统的正则表达式搜索工具 2012-08-29

    什么是使复杂的(多线)正则表达式文件内容具有良好的报告功能的搜索的最佳工具? 我需要做一个汇报过大的Java / JSP代码库,而我不得不作出一些图表之后. Eclipse是在搜索相当不错,但它并没有提供什么发现好报告. 它只是显示文件的树,但我希望看到一个表对应于全场比赛,每个组,文件名,文件路径,文件日期列,可能会有些版本控制信息等.然后我可以此表转移到Excel并提出一些图表,我想. 有一些通用文件系统的搜索工具,有这样的能力? 或者,也许有一些Eclispe的插件,可以提供更好的报告(请

  • perl脚本搜索Java源代码的情况下()敏感的文件名 2013-01-11

    我试图建立一个脚本,将搜索项目的目录结构和源文件大多是Java和XML文件,也许在错误的情况下,在代码中它是如何命名的目录/驱动器所在的文件所在的文件名. 例如ABC.xml在驱动器上的代码Abc.xml. 这个问题被发现,因为我们从Windows迁移到Linux. 我原本以为使用ACK,但这里的防火墙似乎阻止CPAN和它一直未能使用dmake我的电脑上手动安装. (使用最新版本的草莓) 以下是我已经能够到目前为止放在一起,递归搜索的基本路径获得Java和XML文件下的每个子目录. 那么它会打开

  • 正则表达式的Java API“看看隐藏组没有接近指数的明显的最大长度 - ” 2014-02-12

    我在一些SQL where子句解析和设计工作正则表达式查找使用"拉德软件正则表达式Desginer",这是使用.NET API字符串文字之外的列. 为了确保所设计的正则表达式处理Java太,我使用过程中(1.5和1.6)的API进行了测试. 但细想一下,它不会工作. 我得到的消息 "你看,后面的组不具有近28指数明显最大长度". 我想要得到解析的字符串是 Column_1='test''the''stuff''all''day''long' AND Column_2

  • 有需要修改现有的正则表达式搜索推广帮助 2014-07-16

    我想通过修改现有的扩展斜坡上的延伸发展. 我有一个JavaScript的零经验,但我有与C,C ++,Java和Python的经验. 我选择了正则表达式搜索扩展名bizsimon. 这是我想了解的内容脚本的JavaScript代码. chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { sendResponse(chrome_regex_search(request.exp)); });

  • 如何运行一个正则表达式的Java函数设定时限 2014-08-03

    我运行一个正则表达式的Java函数解析文档,并返回true,如果它已经发现了正则表达式指定的字符串,并返回false,如果它没有. 但问题是,当文档不包含的正则表达式指定的字符串,需要很长的时间才能返回false,我要终止该功能,如果它需要6秒以上来执行. 我怎么能在该功能设置为6秒的时间限制,以强制终止,如果需要超过6秒. 我从1级要求等级2的方法"方法1"中的"方法1"调用同一个类,即"2级"的"法2". 方法2运行在一个

  • Eclipse的正则表达式搜索多个单词,无视评论 2014-12-10

    我尝试使用Eclipse的正则表达式搜索功能来搜索的话'富'和'酒吧',忽略了意见. 这是我到目前为止有: ^(?!\s*(//|\*)).*(foo|bar) 我的解决方案的评论限制都还好,我(无论如何,如果有人有不显着延长了正则表达式一个更好的解决方案,我会很高兴听到这件事): 单行注释必须在该行的开头开始,也许缩进(所以我不在乎return null; // foo不会被忽略). 多行注释在有一个星号线的起点开始,也许indended(所以/* foo将是不容忽视的,而bar \n * f

  • JavaScript的正则表达式的Java正则表达式 2015-02-28

    我有一小块Javascript编写的遗物代码扫描网页源和查找模式. 我迁移functuanality到一个Java程序. 所以,我questiong是我怎么可以分析一个JavaScript正则表达式到Java一个用某种查找和替换功能? 例如我的JavaScript正则表达式当前读取(字符串) RegEx = "/(\\/addthis_widget\\.(js|php)|\\.addthis\\.com\\/js\\/widget\\.(js|php))/i"; 我发现这个旧帖子上的计

  • 优化等距字母一个特定的正则表达式搜索 2012-01-09

    我在Javascript中工作,但我认为这是一个普通的正则表达式的问题. 我正在写一个脚本,以搜索长串的字母之间的距离相等子. 例如,在文本a11b22c33d44我们有字符串abcd与2两者之间的所有连续的信距离. 这是微不足道的,以寻找使用正则表达式搜索这样的字符串:上面的例子中,我只需要搜索正则表达式/a.{2}b.{2}c.{2}d/ . 所以,我现在做的是:给搜索字和连续的字母,我只是把之间的距离.{n}它们(其中n为距离)之间,编译这是一个正则表达式,让它做休息的工作. 这只要字母之

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.630 (s). 10 q(s)