正则表达式帮助-匹配数字或字符串结尾

罗伯特·欧文

努力解决这一问题,因为我对正则表达式不太满意。我有这样的字符串:

Method
Lorem ipsum dolor sit amet, id pro lorem consulatu, ut nemore principes vel. Nibh aliquam iracundia ea est, probo utamur placerat at duo. Nam an perfecto voluptaria temporibus, no dicat dolores eum. Doming dissentias eloquentiam sit id, sit eu etiam scriptorem appellantur, ne explicari voluptaria nec.

Agam erroribus cum id, vis ei nominavi copiosae. Per unum atomorum ut, amet atqui moderatius in mel, ex mucius concludaturque vix. Ei quodsi admodum conclusionemque duo, pro vidit nonumy fastidii at. Aliquip voluptua appetere eam id.
42
Aliquip voluptua appetere

我可以使用以下正则表达式检测到: /^Method\n(.*[\s\S]*)(?:\d\d)/

https://regex101.com/r/Uw3XzK/1

问题有时是我检测到的字符串未以数字结尾。在这里,我通常只需要转到字符串的末尾。

Method
Lorem ipsum dolor sit amet, id pro lorem consulatu, ut nemore principes vel. Nibh aliquam iracundia ea est, probo utamur placerat at duo. Nam an perfecto voluptaria temporibus, no dicat dolores eum. Doming dissentias eloquentiam sit id, sit eu etiam scriptorem appellantur, ne explicari voluptaria nec.

Agam erroribus cum id, vis ei nominavi copiosae. Per unum atomorum ut, amet atqui moderatius in mel, ex mucius concludaturque vix. Ei quodsi admodum conclusionemque duo, pro vidit nonumy fastidii at. Aliquip voluptua appetere eam id.

我试过?在搅拌器上加一个/^Method\n(.[\s\S])(?:\d\d)?但是,这将破坏第一个字符串的匹配。

我该如何首先匹配字符串1,然后又回退到文件末尾?

蒂姆·比格莱森(Tim Biegeleisen)

preg_match_all在点所有模式下使用时,以下模式实际上适用于PHP

\bMethod.*?(?=\d{2}|$)

示例脚本:

$input = "Method\nLorem ipsum dolor sit amet, id pro lorem consulatu, ut nemore principes vel. Nibh aliquam iracundia ea est, probo utamur placerat at duo. Nam an perfecto voluptaria temporibus, no dicat dolores eum. Doming dissentias eloquentiam sit id, sit eu etiam scriptorem appellantur, ne explicari voluptaria nec.\nAgam erroribus cum id, vis ei nominavi copiosae. Per unum atomorum ut, amet atqui moderatius in mel, ex mucius concludaturque vix. Ei quodsi admodum conclusionemque duo, pro vidit nonumy fastidii at. Aliquip voluptua appetere eam id.\n42\nAliquip voluptua appetere";
preg_match_all("/\bMethod.*?(?=\d{2}|$)/s", $input, $matches);
print_r($matches);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在golang正则表达式中匹配字符或字符串结尾?

正则表达式匹配以字符开头和结尾的字符串

使用正则表达式匹配所有以4位数字结尾的子字符串

正则表达式:在字符串的开头/结尾匹配所需的字符

正则表达式:精确匹配的字符串以特定字符结尾

需要正则表达式帮助-如何使用正则表达式提取字符串?

正则表达式的帮助!需要将字符串简化为仅数字

正则表达式匹配匹配数字或冒号周围的数字,但不匹配特定字符串

正则表达式以匹配一个以单词开头,以数字结尾或不以数字结尾的字符串

正则表达式匹配直到满足特定字符串或字符串结尾

正则表达式匹配数字不是以字符串开头

匹配数字和字符串的正则表达式

正则表达式匹配数字和字符

R:正则表达式-帮助匹配正则表达式

正则表达式帮助需要匹配数字

正则表达式帮助-尝试检测字符串或正则表达式-C#

正则表达式帮助-匹配特定的字符串,但不包含在[!foobar!]中

正则表达式帮助-难于匹配的字符串

正则表达式帮助在单个字符串中进行匹配

MySQL正则表达式在字符串的开头或结尾匹配括号字符

如何使用正则表达式匹配数字而不匹配字符串?

正则表达式贪婪匹配以字符或字符串结尾结束

如何编写正则表达式以匹配以字母开头并以数字结尾的字符串

字符串后的Javascript正则表达式匹配数

正则表达式帮助:替换字符

正则表达式匹配由空格分隔的数字值,但整个字符串不以空格结尾

在正则表达式匹配方面需要帮助

正则表达式匹配数字字符串中的 3 个零

正则表达式帮助 - 不匹配特定字符串