这个以特定字符结束的正则表达式,要怎样写?

例br中国人民br非洲人民br都是以“人民”结束,这种表达式要怎样写才对?br这是这样写的.人民就是匹配不上
赵顺财 来自: 移动端 2020-10-13 13:33

声明:本网站依照法律规定提供财经资讯,未授权或允许任何组织与个人发布交易广告。对任何广告信息请谨慎交易,谨防诈骗。举报邮箱:xxxxxxxxx@qq.com

2020-10-13 13:45最佳答案

主要是用正则表达式的分组匹配技术。


1、以某字符结尾:例如sex$;


2、中间不包含该字符串:^((?!sex).*)


3、最后合起来就是:^((?!sex).*)sex$

“正则表达式”选中以某些字符开始,某些字符结尾的字符串?的含义如下:

字符 含意:\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b" ,当b 前面加了反斜杆后/\b/,转意为匹配一个单词的边界。-或-对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa ,加了"\"后,/a\*/将只匹配"a*"。

^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"

$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"

* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa

+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa

? 匹配前面元字符0次或1次,/ba*/将匹配b,ba

(x) 匹配x 保存x 在名为$1...$9的变量中x|y 匹配x 或y,{n} 精确匹配n 次,{n,} 匹配n 次以上

{n,m} 匹配n-m 次,[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)

[^xyz] 不匹配这个集合中的任何一个字符,[\b] 匹配一个退格符,\b 匹配一个单词的边界

\B 匹配一个单词的非边界,\cX 这儿,X 是一个控制符,/\cM/匹配Ctrl-M。

其他回答(共7条)

  • 2020-10-13 13:57 黄相柏 客户经理

    .*匹配除 \n 以外的任何字符。 /[\u4E00-\u9FA5]/ 汉字 /[\uFF00-\uFFFF]/ 全角符号 /[\u0000-\u00FF]/ 半角符号 --------------------- 这个正则我写的,仔细想了之后,这个答案还不够严谨,例如末尾为aba,这个应当是符合规则的,但会被这个正则报false,上面提到的三点应该是或者的关系,只要符合其一,就能符合。 改进后:/([^a][\S]{2}|[\S][^b][\S]|[\S]{2}[^c])$/ 不需要判断最后三位数以外的字符,默认即是任意字符,只要结尾不为abc,则全部都能匹配。
  • 2020-10-13 13:54 黄生龙 客户经理

    String regex = "^A*C*B$"; Pattern p = Pattern.compile(regex); java.util.regex.Matcher m = p.matcher("这里是你要匹配的字符串"); while (m.find()) { System.out.println(m.group()); }
  • 2020-10-13 13:51 辛国爱 客户经理

    ^/.*    ^表示行的开头.* 表示任意,就是随便是什么都匹配,没有了也匹配。
    测试过,可用。

    正则表达式,又称规则表达式,是计算机科学的一个概念,这个概念最初是由Unix中的工具软件普及开的。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

    正则引擎主要分为DFA、NFA两大类。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。

    正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究。通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

  • 2020-10-13 13:48 连俊勤 客户经理

    (姓名:)(.*)(,)(.*),这样取\2  得到的是:中国人,地址。

    1.表达式内固定内容的字符串能不写尽量不写,能简写的尽量简化来写(如前面写的abc部分不能写死)

    2.可以少量使用前瞻(正向),后瞻(反向)基本不学,学了还要研究那些浏览器支持,不敢用,太多了也学不动。

    3.NoJS(Not Only JavaScript);不仅仅是浏览器中的js;不过js的正则/exp/字面量写法简洁到没盆友(哪个语言),函数、对象、字符串统统不需要。

    扩展资料:

    在test.txt文件中的每一行中搜索正则表达式r.t,并打印输出匹配的行。正则表达式r.t匹配一个r接着任何一个字符再接着一个t。所以它将匹配文件中的rat和rut,而不能匹配Rotten中的Rot,因为正则表达式是大小写敏感的。

    要想同时匹配大写和小写字母,应该使用字符区间元字符(方括号)。正则表达式[Rr]能够同时匹配R和r。所以,要想匹配一个大写或者小写的r接着任何一个字符再接着一个t就要使用这个表达式:[Rr].t。

    要想匹配行首的字符要使用抑扬字符(^)——有时也被叫做插入符。例如,想找到text.txt中行首"he"打头的行,你可能会先用简单表达式he,但是这会匹配第三行的the,所以要使用正则表达式^he,它只匹配在行首出现的he。

    有时候指定“除了×××都匹配”会比较容易达到目的,当抑扬字符(^)出方括号中时,它表示“排除”,例如要匹配he ,但是排除前面是t or s的情形(也就是the和she),可以使用:[^st]he。

    参考资料:

  • 2020-10-13 13:42 齐明明 客户经理

    天用dedecms写采集规则的时候发现一不小心,把大量无用的字符也采集下来了,重写规则重新集采是不太可能的了,那么多的数据,好再dedecms功能很强大,即使采集下来后也可用替换功能将无用字符给替换掉,于是有了今天的问题。正则匹配指定字符开始和指定字符结束,如以a开始结束的正则表达式为:a.*?b ,即以a开始b结束的字符可能被匹配。顺便将dedecms批量改动太的sql语句记下来,伪静太或动态页面的时候很有用。
    进入后台→系统→SQL命令行工具→运行SQL命令行: 单行命令执行查询命令:
    1.将所有文档设置为“仅动态”:update dede_archives set ismake=-1
    2.将所有文档设置为“仅静态”:update dede_archives set ismake=1
    3.将所有栏目设置为“使用动态页”: update dede_arctype set isdefault=-1
    4.将所有栏目设置为“使用静态页”: update dede_arctype set isdefault=1
  • 2020-10-13 13:39 赵风茹 客户经理

    a.*?b就是a开始b结束的匹配
    如果要限制是一行的开头和末尾的话
    就是
    ^a.*?b$
  • 2020-10-13 13:36 黄相森 客户经理

    (姓名:)(.*)(,)(.*),这样取\2  得到的是:中国人,地址。

    正则表达式对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

    正则表达式模式描述在搜索文本时要匹配的一个或多个字符串。

    扩展资料:

    在正则表达式中,放在圆括号中的是分组,按括号出现顺序可用\1,\2...\9(或$1,$2...$9)引用整个正则用\0或$0引用。因此替换中\1引用了括号中匹配的内容,然后加上要添加的字符。

    其中:

    \S: 表示匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

    \s: 表示匹配匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

    *: 表示匹配前面的子表达式零次或多次。

    [\s\S]: 表示出现空白和非空白中的任意一个字符,即是任意字符。

    参考资料来源:

相关百科精选

  • 八大买寿险... 由于人们对购买人寿保险知识的...

  • 中国太平洋人寿保险股份有限... 中国太平洋人寿保险(集团)股份有限公司(以下简称“中国太平洋人寿”)是在1991年5月13日成立的中国太平洋保险公司的基础上组建而成的保险集团公司,总部设在上海,注册资本77亿元,2007年12月25日在上海证券交易所