Regex 如何在正则表达式中包含任何符号(包括新行)的关键字之间匹配字符串
我有这个xml文件Regex 如何在正则表达式中包含任何符号(包括新行)的关键字之间匹配字符串,regex,Regex,我有这个xml文件 <?xml version="1.0" encoding="UTF-8"?> <?mso-infoPathSolution solutionVersion="1.0.0.182" productVersion="15.0.0" PIVersion="1.0.0.0" href="http://sp01/hp/Therapy/Forms/template.xsn" name="urn:schemas-microsoft-com:office:infopath:
<?xml version="1.0" encoding="UTF-8"?>
<?mso-infoPathSolution solutionVersion="1.0.0.182" productVersion="15.0.0" PIVersion="1.0.0.0" href="http://sp01/hp/Therapy/Forms/template.xsn" name="urn:schemas-microsoft-com:office:infopath:Therapy:-myXSD-2013-03-01T10-07-30" ?>
<?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.3"?>
<my:myFields
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:pc="http://schemas.microsoft.com/office/infopath/2007/PartnerControls"
xmlns:ma="http://schemas.microsoft.com/office/2009/metadata/properties/metaAttributes"
xmlns:d="http://schemas.microsoft.com/office/infopath/2009/WSSList/dataFields"
xmlns:q="http://schemas.microsoft.com/office/infopath/2009/WSSList/queryFields"
xmlns:dfs="http://schemas.microsoft.com/office/infopath/2003/dataFormSolution"
xmlns:dms="http://schemas.microsoft.com/office/2009/documentManagement/types"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2013-03-01T10:07:30"
xmlns:xd="http://schemas.microsoft.com/office/infopath/2003"
xml:lang="en-us">
<my:PatientID>1</my:PatientID>
<my:Name>name</my:Name>
<my:Age>29.0000000000000</my:Age>
<my:Gender>gender</my:Gender>
<my:Date>2015-12-09</my:Date>
<my:group1>
<my:group2>
<my:field1>1</my:field1>
<my:PName>pname</my:PName>
<my:PPrice>10000.0000000000</my:PPrice>
<my:field11 xsi:nil="true"></my:field11>
</my:group2>
<my:group2>
<my:field1>9</my:field1>
<my:PName>pname
</my:PName>
<my:PPrice>10000.0000000000</my:PPrice>
<my:field11 xsi:nil="true"></my:field11>
</my:group2>
</my:group1>
<my:field4></my:field4>
<my:field5></my:field5>
<my:Status>false</my:Status>
<my:Confirm>false</my:Confirm>
<my:field6></my:field6>
<my:field7></my:field7>
<my:field8></my:field8>
<my:TPrice>20000</my:TPrice>
<my:field12></my:field12>
<my:field13></my:field13>
<my:insurance>1</my:insurance>
<my:Partner>partner</my:Partner>
<my:Doctor>doctor</my:Doctor>
</my:myFields>
1.
名称
29
性别
2015-12-09
1.
pname
10000
9
pname
10000
假的
假的
20000
1.
搭档
医生
我想用正则表达式过滤它,只得到tag的值,即
<my:group1>
<my:group2>
<my:field1>1</my:field1>
<my:PName>pname</my:PName>
<my:PPrice>10000.0000000000</my:PPrice>
<my:field11 xsi:nil="true"></my:field11>
</my:group2>
<my:group2>
<my:field1>9</my:field1>
<my:PName>pname
</my:PName>
<my:PPrice>10000.0000000000</my:PPrice>
<my:field11 xsi:nil="true"></my:field11>
</my:group2>
</my:group1>
1.
pname
10000
9
pname
10000
我试着用这个正则表达式过滤它
<my:group1>(.*\r*\n*)*<\/my:group1>
(.*\r*\n*)*
但我似乎走错了方向。如何过滤关键字之间的任何字符,包括新行?您可以使用此正则表达式():
(.|\n |\r)*
但是请,请,请使用xml解析器来解析xml,而不是正则表达式。您可以使用这个正则表达式():
(.|\n |\r)*
但是请,请,请使用xml解析器来解析xml,而不是正则表达式
如何过滤关键字之间的任何字符,包括新行
由于
字符不包括换行符,因此可以使用s
标志,使其匹配所有字符,包括换行符-
如何过滤关键字之间的任何字符,包括新行
由于
字符不包括换行符,因此可以使用s
标志,使其匹配所有字符,包括换行符-
@伊恩,我试过了,但没给你机会result@Ian我试过了,但没有给出正确的结果我只是想删减所有其他信息并保留group1部分,但你的建议有意义:)我只是想删减所有其他信息并保留group1部分,但你的建议有意义:)
<my:group1>(.|\n|\r)*<\/my:group1>
/<my:group1>(.*)<\/my:group1>/s
<my:group1>([\s\S]*)<\/my:group1>