考虑您在下面解析以下文本:
我想只获取Fetch键之后的值(直到最后一个逗号不包括在内)(239847238974982374897289347982374892734897238947892374892374892374
)
<some_xml="SDFSDF_sd\S-1-sdfsdfsdfsdfsdfsdf">
Key1:
3A68686BGGHJ12,
Fetch:
239847238974982374897289347982374892734897238947892374892374892374,
{sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf}:
</some_xml>
我这样做的正则表达式是:<some_xml.*>[\s.]*Fetch:([^,]*)
出于某种原因,[\s.]
并未在我的Fetch
密钥之前捕获所有可能的冗余信息,您能解释一下原因吗?
整个例子是here
编辑:我的正则表达式在第一个[]组之后丢失*,但仍然是同样的问题,修复版本here - 但存在同样的问题
答案 0 :(得分:1)
部分[\s.]*
匹配任意数量的空格或句号,但仅限于这些。您可能正在寻找.*?
之类的内容。它可能会起作用,但这里确实存在其他一些问题。例如。 <some_xml.*>
如果有多个标记,则会跳过整个标记,因为.*
会尽可能多地匹配。
请使用正则表达式工作 here at regex101并注意它如何跳过第一部分并在第二部分中选择字符串。
此致
答案 1 :(得分:0)
答案 2 :(得分:0)