多行PCRE,多种条件
Multiline PCRE, multiple conditions
刚开始使用正则表达式并遇到了绊脚石。希望有人能够解释解决方法。
正在尝试执行多行搜索。我希望使用“*”作为 'flag',可以这么说:如果一行包含星号,它应该匹配。应输出行首的数字,链接示例中的单词 "Match" 也应输出,不包括星号本身。
我假设我使用“|”正在将正则表达式分为两个条件,当它实际上需要满足两个条件时才能匹配。
https://regex101.com/r/Pu56bi/2
(?m)(^\d+)|(?<=\*).*$
感谢任何帮助。
你可以使用 pos。向前看
^(?=.*?\*)(\d+).+?(Match)$
如果 Match
总是在字符串的末尾,您可以匹配字符串开头的数字,然后匹配字符串末尾的 *
和 Match
字符串。
使用单词边界 \b
以防止数字单词成为较长单词的一部分。
^(\d+)\b.*\*.*\b(Match)$
如果在单词 Match
之后可以进行测试,您可以使用正向先行断言 *
。
^(?=.*\*)(\d+)\b.*\b(Match)\b.*$
刚开始使用正则表达式并遇到了绊脚石。希望有人能够解释解决方法。
正在尝试执行多行搜索。我希望使用“*”作为 'flag',可以这么说:如果一行包含星号,它应该匹配。应输出行首的数字,链接示例中的单词 "Match" 也应输出,不包括星号本身。
我假设我使用“|”正在将正则表达式分为两个条件,当它实际上需要满足两个条件时才能匹配。
https://regex101.com/r/Pu56bi/2
(?m)(^\d+)|(?<=\*).*$
感谢任何帮助。
你可以使用 pos。向前看
^(?=.*?\*)(\d+).+?(Match)$
如果 Match
总是在字符串的末尾,您可以匹配字符串开头的数字,然后匹配字符串末尾的 *
和 Match
字符串。
使用单词边界 \b
以防止数字单词成为较长单词的一部分。
^(\d+)\b.*\*.*\b(Match)$
如果在单词 Match
之后可以进行测试,您可以使用正向先行断言 *
。
^(?=.*\*)(\d+)\b.*\b(Match)\b.*$