Regex 如何在正则表达式中包含任何符号(包括新行)的关键字之间匹配字符串

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文件

<?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>