正则表达式,匹配特定字符后面的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式,匹配特定字符后面的内容相关的知识,希望对你有一定的参考价值。

姓名:中国人,地址,不详

需要匹配:中国人
解释:(姓名:)是不变的,(中国人)可能是其他,(中国人)后面的逗号(,)是固定的

如果前面是固定的“姓名:”的话,试试(?<=姓名:).*?(?=,\\d11)。

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

扩展资料

正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。

在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹配"testing"和"testing123"等字符串,但是不能匹配"Testing"。

参考资料来源:百度百科-正则表达式

参考技术A

(姓名:)(.*)(,)(.*),这样取\\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]: 表示出现空白和非空白中的任意一个字符,即是任意字符。

参考资料来源:百度百科 ——正则表达式

参考技术B

(姓名:)(.*)(,)(.*),这样取\\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。

参考资料:百度百科-正则表达式

参考技术C (姓名:)(.*)(,)(.*)
这样取\2 得到的是:中国人,地址

(姓名:)(.*)(,)(.*)(,)(.*)
这样\2 得到的是:中国人追问

关键后面有多少个逗号我也不知道,我只知道中国人后面是一个逗号

谢谢你,我目前用:"姓名:[^,]+"

谢谢你,我目前用:"姓名:[^,]+",但会匹配姓名:

我只要中国人

追答

(姓名:)([^,]+)(.*)
\2

追问

我只要匹配 (姓名:)到最近一个(,)中间的字符,但不要姓名:和,
谢谢!

本回答被提问者和网友采纳
参考技术D (?<=\b姓名:).*(?=,地址)
目前也有这样的需求,应该还有更好的方式,这个简单测了一下应该满足需要

php正则表达式 怎样从后面开始匹配

参考技术A 这头尾两个斜杠/是正则表达式的限定符,这是perl正则的标准,而php支持的正则表达式就是perl正则的规范。表示两个斜杠之间就是正则内容,在结尾斜杠后面可以开启匹配的模式,例如:/^[\w\x80-\xff]3,15$/i
,后面的
i
就是忽略大小写匹配。
参考技术B preg_match_all("/
(.+)<\/li>/i",$st,$ma);
echo
end($ma[1]);
虽然array_pop($ma[1])也可以得出这数组的最后一个元素
但是它会把这元素从原数组中删除从而改变这数组
所以本人强烈不建议使用

以上是关于正则表达式,匹配特定字符后面的内容的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:匹配除特定模式之外的所有内容

正则如何匹配某字符之后的内容

js正则表达式 匹配两个特定字符间的内容

python 如何提取特定字符中间的内容

正则表达式匹配不是特定子字符串的内容

python提取指定字符中间的内容?