java中正则表达式问题

问题描述

java中正则表达式问题

如题: 如何得到一个字符串中匹配正则的子字符串?
例如:String str="abk abggs wws aos poe wihj allls ayutres ";
java代码。。。。。
得到(条件-----------以a开头以s结尾)
"abk", "abggs","aos","allls","ayutres"

求所需的正则表达式

解决方案

 这不是和上回那个很相似吗,"abk"这个应该不是吧
 public static void test3(){
        String str="abk abggs wws aos poe wihj allls ayutres ";
        String startChar = "a";
        String endChar = "s";
        Pattern p = Pattern.compile("(?i)(?<=)a((?!s).)*s(?=)");//正则表达式
        Matcher m = p.matcher(str) ;//
        while (m.find()) {
            System.out.println(m.group(0));//
        }
    }

解决方案二:

java中正则表达式-匹配问题
java中正则表达式使用
Java中正则表达式类的一些使用

解决方案三:

 '^a[a-zA-Z]+s$'

解决方案四:

a((?!s).)*,

解决方案五:

public static void main(String[] args) {
        String str = "abk abggs wws aos poe wihj alllsayutres ";
        Pattern p = Pattern.compile("a.*?s");// a开头s结尾,中间是任意多个字符
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println(m.group(0));
        }
    }

输出结果:

abk abggs
aos
allls
ayutres

这个第一个匹配项中因为有两个a一个s,因此是找到的最全的匹配项,不能输出abggs。

时间: 2024-09-08 13:03:43

java中正则表达式问题的相关文章

求一个java中正则表达式,匹配所有标点符号,但除去‘-’和‘_’的

问题描述 求一个java中正则表达式,匹配所有标点符号,但除去'-'和'_'的 解决方案 可以使用正则表达式:(?=\pP)[^-_]测试:String ss = "测试test.df/:'-_";System.out.println(ss.replaceAll("(?=\pP)[^-_]", ""));输出:测试testdf-_解释:(1)前面部分(?=\pP)是个顺序环视正则表达式,只匹配位置不占用字符,匹配的位置是一个标点符号.(2)匹配到

java中 正则表达式解决连续不同数字问题

问题描述 java中 正则表达式解决连续不同数字问题 匹配ABC4或者AB44 ,A,B,C为任意不相等数字 在java中匹配上诉规则应该是怎样的? 正则菜鸟,求解答,谢过 解决方案 ^(d)(?!1)(d)(?!1|2)d4$ 解决方案二: /^d{3}[4]$/ /^d{2}[4]{2}$/ 其实没懂什么意思,上面那两个字符串是需要用一个正则表达式还是两个?还是那两个是一个整的字符串?晕乎乎的,不过我也是菜鸟,仅供参考,答错勿怪哦.... 解决方案三: 按照你给的这两个,基本上就是绝对匹配了

JAVA中正则表达式的应用(一)

正则表达式: 正则表达式是一种可以用于模式匹配和替换的强有力的工具,一个正则表达式就是由普通的字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式,它描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 正则表达式在字符数据处理中起着非常重要的作用,我们可以用正则表达式完成大部分的数据分析处理工作,如:判断一个串是否是数字.是否是有效的Email地址,从海量的文字资料中提取有价值的数据等等,如果不使用正则表达式,那么实现的

浅谈Java中正则表达式的优化方法

获取每次使用引起小损失的分组.如果你实际并不需要获取一个分组内的文本,那么 就使用非捕获分组.例如使用"(?:X)"代替"(X)". 让引擎完成优化(Let the engine do the work for you) 如上面我所提到的,java.util.regex包可以编JAVA译正则表达式时对其优化.例如, 正则表达式中包含了一个必须在输入字符串中出现的字符串(或者整个表达式都不匹配) ,引擎有时会首先搜索该字符串,如果没有找到匹配就会报告失败,不再检查整个

JAVA中正则表达式小总结(整理)_正则表达式

]js正则表达式基本语法(精粹):  http://www.jb51.net/article/72044.htm       许多语言,包括Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级"搜索-替换"功能.所以JAVA语言也不例外.正则表达式已经超出了某种语言或某个系统的局限,成为被人们广为使用的工具,我们完全可以用它来解决实际开发中碰到的一些实际的问题.        在JDK1.3及之前的JDK版

JAVA中正则表达式小总结(整理)

]js正则表达式基本语法(精粹):  http://www.jb51.net/article/72044.htm 许多语言,包括Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级"搜索-替换"功能.所以JAVA语言也不例外.正则表达式已经超出了某种语言或某个系统的局限,成为被人们广为使用的工具,我们完全可以用它来解决实际开发中碰到的一些实际的问题. 在JDK1.3及之前的JDK版本中并没有包含正则表达式的

JAVA中正则表达式匹配,替换,查找,切割的方法_正则表达式

正则表达式的查找;主要是用到String类中的split(); String str; str.split();方法中传入按照什么规则截取,返回一个String数组 常见的截取规则: str.split("\\.")按照.来截取 str.split(" ")按照空格截取 str.split("cc+")按照c字符来截取,2个c或以上 str.split((1)\\.+)按照字符串中含有2个字符或以上的地方截取(1)表示分组为1 截取的例子; 按照

Java中正则表达式的运用[转]

  如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单.如果你不熟悉这个术语,那么"正则表达式"(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式. 许多语言,包括Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高 级"搜索-替换"功能.那么Java又怎样呢?本文写作时,一个包含了用

java中正则表达式的应用

java.util.regex   Pattern的应用   1 public static void main(String[] args) { 2 //简单的正则匹配.从给定的字符串中匹配正则表达式 3 //匹配到返回true 匹配不到返回false 4 String regex_0 = "(\\;|\\?|\\'|\"|%)"; 5 String s="sx?fdfs'sd"; 6 Pattern pattern = Pattern.compile(