C# 使用正则表达式从字符串中获取子字符串
我正在尝试使用正则表达式从一个大字符串中获取子字符串。 子字符串的格式如下所示:C# 使用正则表达式从字符串中获取子字符串,c#,regex,split,C#,Regex,Split,我正在尝试使用正则表达式从一个大字符串中获取子字符串。 子字符串的格式如下所示: 以数字00-99开头,后跟等号= 可能至少包含一个字符。任何角色 以下划线“\”结尾 子字符串示例: 01=#010.0000#001.0000#+10.0#AA_ 02=#020.0000#002.0000#+20.0#BB_ 01=#010.0000#001.0000#+10.0#AA_02=#020.0000#002.0000#+20.0#BB_ 完整字符串示例: 01=#010.0000#001.0
- 以数字00-99开头,后跟等号=李>
- 可能至少包含一个字符。任何角色李>
- 以下划线“\”结尾李>
01=#010.0000#001.0000#+10.0#AA_
02=#020.0000#002.0000#+20.0#BB_
01=#010.0000#001.0000#+10.0#AA_02=#020.0000#002.0000#+20.0#BB_
完整字符串示例:
01=#010.0000#001.0000#+10.0#AA_
02=#020.0000#002.0000#+20.0#BB_
01=#010.0000#001.0000#+10.0#AA_02=#020.0000#002.0000#+20.0#BB_
我尝试了这个表达式,但结果得到了完整的字符串
^\d{2}=.+_$
我错过了一些东西。有什么帮助吗 您可以使用
\d{2}=.*?_(?=\d{2}=|$)
见
您也可能不需要在匹配前输入任何数字,然后输入(?反向查找:
(?<!\d)\d{2}=.*?_(?=\d{2}=|$)
(?
\d{2}=.*?\u(?=\ d{2}=|$)
模式匹配两个数字,=
,然后匹配除换行符以外的任何0+字符,尽可能少,直到第一个
,第一个
有两个数字,并且=
在后面或在字符串末尾。如果你想要字符串的一部分,那么你首先需要放下锚点^
和$
我将始终匹配整个字符串或根本不匹配。请注意,如果有更具体的要求,您可能希望使您的模式更详细。请参阅\d{2}=(?:#[-+]?\d+\.\d+(?:[-+]?\d+\.\d+*)++[a-zA-Z]{2}。