gpt4 book ai didi

regex - 正则表达式中的 (?ms) 是什么意思?

转载 作者:行者123 更新时间:2023-12-03 23:24:26 25 4
gpt4 key购买 nike

我在 Powershell 中有以下正则表达式:

[regex]$regex = 
@'
(?ms).*?<DIV class=row>.*?
'@

(?ms) 在这里是什么意思。

最佳答案

(?m)是多行模式的修饰符。它使 ^$分别匹配一行的开头和结尾,而不是匹配输入的开头和结尾。

例如,给定输入:

ABC DEF
GHI



正则表达式 ^[A-Z]{3}将匹配:

  1. "ABC"


同时,正则表达式 (?m)^[A-Z]{3}将匹配:

  1. "ABC"
  2. "GHI"

(?s)是单行模式的修饰符。它将换行符和换行符添加到 . 的字符列表中。会匹配。

给定与之前相同的输入,正则表达式 [A-Z]{3}.将匹配(注意包含空格字符):

  1. "ABC "


而正则表达式 (?s)[A-Z]{3}.将匹配:

  1. "ABC "
  2. "DEF\n"


尽管名称不同,但这两种模式不一定相互排斥。在某些实现中,它们相互抵消,但在大多数情况下,它们可以协同使用。您可以通过写 (?m)(?s) 同时使用两者或者,更短的形式, (?ms) .

编辑:

在某些情况下您可能需要使用 (?ms) .下面的例子有点做作,但我认为它们符合我们的目的。给定输入(注意“ABC”后面的空格):

ABC
DEF
GHI



正则表达式 (?ms)^[A-Z]{3}.火柴:

  1. "ABC "
  2. "DEF\n"


虽然两者 (?m)^[A-Z]{3}.(?s)^[A-Z]{3}.比赛:

  1. "ABC "

关于regex - 正则表达式中的 (?ms) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com