正则表达式匹配在第 1 组中出错
regex match getting wrong in group 1
我有一个字符串,我需要这种模式 $body.anyname
或 $body.anyname.anyname
或像这样,但不像 $body.anyname.
我写了这个正则表达式 $[body](\w+((\[\d\]){0,}\.\w+(\[\d\]){0,}){0,})
它匹配整个字符串,但我需要第 1 组中的 body.anyname
,但是得到 ody.anyname
这可以通过字符串操作来完成,但出于某种原因我需要使用正则表达式.在此处检查正则表达式 https://regex101.com/r/PigNVO/1/
您可以对右侧的空白边界使用和断言来排除点。
请注意,这部分 [body]
是匹配 b
o
d
或 y
的字符 class,而不是 y
的一部分第一组.
$(body(?:\.\w+)+)(?!\S)
部分
$
匹配 $
(
捕获组 1
body
字面匹配
(?:\.\w+)+
重复 1+ 次匹配一个点和 1+ 个单词字符
)
关闭组 1
(?!\S)
断言右边的空白边界
我有一个字符串,我需要这种模式 $body.anyname
或 $body.anyname.anyname
或像这样,但不像 $body.anyname.
我写了这个正则表达式 $[body](\w+((\[\d\]){0,}\.\w+(\[\d\]){0,}){0,})
它匹配整个字符串,但我需要第 1 组中的 body.anyname
,但是得到 ody.anyname
这可以通过字符串操作来完成,但出于某种原因我需要使用正则表达式.在此处检查正则表达式 https://regex101.com/r/PigNVO/1/
您可以对右侧的空白边界使用和断言来排除点。
请注意,这部分 [body]
是匹配 b
o
d
或 y
的字符 class,而不是 y
的一部分第一组.
$(body(?:\.\w+)+)(?!\S)
部分
$
匹配$
(
捕获组 1body
字面匹配(?:\.\w+)+
重复 1+ 次匹配一个点和 1+ 个单词字符
)
关闭组 1(?!\S)
断言右边的空白边界