PHP正则表达式模式修饰符A和D
谁能帮我修改一下PHP正则表达式模式修饰符A和D,php,regex,Php,Regex,谁能帮我修改一下A和D 我读了3遍描述,并在regex101上做了几次测试,但我不能这样做,这样它们就可以工作了。或者,我找不到一个他们本可以挣到多少钱的例子 例如,正则表达式 <u>[a-z]+<\/u> [a-z]+ 使用A和不使用A [a-z]+ 无论您是否将该模式锚定到开头,它都将始终与第一行匹配 word 主要的 仅限-除非添加g修饰符,使其在第一次匹配后不停止 因此,添加/g和/gA,然后您将看到这a有什么不同… A(PCRE\u锚定) 如果设置了
A
和D
我读了3遍描述,并在regex101上做了几次测试,但我不能这样做,这样它们就可以工作了。或者,我找不到一个他们本可以挣到多少钱的例子
例如,正则表达式
<u>[a-z]+<\/u>
[a-z]+
使用A
和不使用A
[a-z]+
无论您是否将该模式锚定到开头,它都将始终与第一行匹配
word
主要的
仅限-除非添加g
修饰符,使其在第一次匹配后不停止
因此,添加/g
和/gA
,然后您将看到这a
有什么不同…
A
(PCRE\u锚定)
如果设置了此修饰符,则模式将被强制“锚定””,也就是说,它被约束为仅在正在搜索的字符串(“主题字符串”)的开头匹配。这种效果也可以通过模式本身中的适当构造来实现,这是在Perl中实现的唯一方法
示例:/bar/A
但是
还有可用于匹配字符串开头的\A
。这在多行模式(使用m
)中很有用,其中^
匹配每行的开头
D
(仅限PCRE美元)
如果设置了此修饰符,则模式中的美元元字符仅在主题字符串的末尾匹配如果美元是换行符(但不在任何其他换行符之前),则如果没有此修饰符,美元也会紧跟在最后一个字符之前进行匹配。如果设置了m修饰符,则忽略此修饰符。Perl中没有与此修饰符等效的修饰符
示例:/foo$/D
但是
还有一个较低的
\z
锚点可用于匹配字符串的绝对端:foo\z
,而较高的\z
的行为类似于美元符号,并且在最后一个\n
之前匹配,与多行模式(m
标志)中的行为不同上层\Z
在每行末尾不匹配。是的,我知道了,谢谢。但是如果我去掉g,就没有区别了。此外,PHP语言中没有g
修饰符,只有preg\u match
和preg\u match\u all
“但是如果我删除g,没有区别”——当然没有区别,因为没有它只会查找第一个匹配。第一个匹配已经在输入文本的最开始处了,因此无论您是否通过A
请求匹配,这都是多余的。如果您想在不使用g
的情况下查看A
的效果,则必须创建一个在测试输入开始时没有模式匹配的示例,例如,在其前面放置一个简单空格-现在尝试将/A
关闭。。。“此外,PHP语言中没有g修饰符,只有preg_match和preg_match_all”-那么不管您需要什么情况,都可以使用适当的修饰符。Regex对于它来说是错误的工具,我在这里写了一个类似的答案:对于您的情况:@AniketSahrawat是的,我知道,谢谢,这只是一个培训示例
<u>[a-z]+<\/u>
<u>word</u>
<u>main</u>