正则表达式模式以匹配除最后一个字符以外的任何字符

伽利略

我正在尝试使用两个不同的模式来匹配字符串。
我的源字符串是这样的:

Text, white-spaces, new lines and more text then ^^^^<customtag>

我需要得到一个(第二个)组,该组将捕获一个插入符号,或者不捕获任何一个格式化的类似HTML的标记。因此,第一组将捕获其他任何内容。
这意味着上面的字符串应输出以下内容:

(Group 1)Text, white-spaces, new lines and more text then ^^^

(Group 2)^<customtag>

在源字符串中,插入号可以为一,无或最多两千。
我需要一个匹配最后一个插入以外所有插入的良好模式
下面的代码是我尝试的。

preg_match_all('/([\s\S]*\^*)(\^?<\w+>)$/', $string, $matches);


请注意:我使用了[\s\S]代替来匹配任何字符,空格和换行符。

革命

您可以遵循以下正则表达式:

(?s)(.*)((\^|(?<!\^))<[^>]+>)

现场演示

PHP代码:

preg_match_all('/(?s)(.*)((\^|(?<!\^))<[^>]+>)/', $string, $matches);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式匹配LF中的最后一个字符

从正则表达式匹配中删除最后一个字符

正则表达式匹配的最后一个字符

的正则表达式模式匹配包含一个字符

正则表达式匹配任何单个字符(仅一个字符)

C#正则表达式第二个字符到最后一个字符模式匹配

Java正则表达式除最后一个字符外的所有字符

Android Java正则表达式匹配除一个字符外的所有字符

使用正则表达式替换匹配字符串的最后一个字符

正则表达式匹配字符串中的最后一个字符

正则表达式匹配字符串中的最后一个字符 - C#

正则表达式匹配上句中字符集之前的最后一个字符

正则表达式模式将s标识为元音后的最后一个字符

URL的最后一个字符与正则表达式匹配时重定向URL

正则表达式匹配长度大于 1 的单词的最后一个字符

正则表达式 - 删除最后一个字符

正则表达式,用于检查最后一个字符

正则表达式,禁止点 (.) 作为最后一个字符

正则表达式用最后一个字符验证

如何替换所选正则表达式的最后一个字符?

正则表达式WORD的最后一个字符

正则表达式仅提前删除最后一个字符

正则表达式获取最后一个字符

选择最后一个字符的正则表达式

如何在 `tr` 中使用正则表达式模式来仅替换匹配的最后一个字符?

JS 正则表达式 - 匹配到行尾或一个字符

匹配正则表达式中的第一个字符?

正则表达式匹配一个字符后的点

正则表达式负前瞻仅匹配一个字符