C# 正则表达式匹配但不包括

C# 正则表达式匹配但不包括,c#,regex,C#,Regex,我试图使用正则表达式根据下面的字符串(回车在字符串中)只选择粗体(减去*)。我想从中选择的每个字符串都以ISA开头。我一直在尝试使用这个,(?如果它是介于第9和第10个星号之间的数字,那么您可以使用: ISA(?:[^*]*\*){9}(\d+)\* 如图所示,如果数字介于第9和第10个星号之间,则可以使用: ISA(?:[^*]*\*){9}(\d+)\* 如图所示,我不会使用正则表达式来解析X12 EDI文档 查看该链接,您会发现字段定界符始终位于ISA行的104位置,子定界符始终位于I

我试图使用正则表达式根据下面的字符串(回车在字符串中)只选择粗体(减去*)。我想从中选择的每个字符串都以ISA开头。我一直在尝试使用这个,
(?如果它是介于第9和第10个星号之间的数字,那么您可以使用:

ISA(?:[^*]*\*){9}(\d+)\*

如图所示,如果数字介于第9和第10个星号之间,则可以使用:

ISA(?:[^*]*\*){9}(\d+)\*

如图所示,我不会使用正则表达式来解析X12 EDI文档

查看该链接,您会发现字段定界符始终位于ISA行的104位置,子定界符始终位于ISA行的105位置,记录定界符始终位于106位置(如果不在,则没有有效的X12)

使用它,我会这样做(如果您专门查找ISA记录的字段7):


如果需要,这还允许您以类似的方式对其他记录进行排序。

我不会使用正则表达式解析X12 EDI文档。最好从

查看该链接,您会发现字段定界符始终位于ISA行的104位置,子定界符始终位于ISA行的105位置,记录定界符始终位于106位置(如果不在,则没有有效的X12)

使用它,我会这样做(如果您专门查找ISA记录的字段7):


如果您需要,这也允许您以类似的方式对其他记录进行排序。

以下操作应有效:

^ISA(?:[^*]*[*][^*]*){8}\*(\d+)\*  

其工作方式:

^ISA          — start of string has "ISA"
(?:           — non-capturing group
[^*]*[*][^*]* — zero or more non-asterisks, followed by asterisk, followed by non-asterisk
{8}           — eight of these
\*            — one more asterisk
(\d+)         — capture one or more digits
\*            — followed by another asterisk

以下方面应起作用:

^ISA(?:[^*]*[*][^*]*){8}\*(\d+)\*  

其工作方式:

^ISA          — start of string has "ISA"
(?:           — non-capturing group
[^*]*[*][^*]* — zero or more non-asterisks, followed by asterisk, followed by non-asterisk
{8}           — eight of these
\*            — one more asterisk
(\d+)         — capture one or more digits
\*            — followed by another asterisk

你为什么要使用正则表达式?什么定义了“你关心的位”?有很多星号,那么你的数字有什么特别之处?是“空格-星号-数字序列-星号-空格”?@AllenG我不必使用正则表达式,但粗体部分前面的字符可以是动态的……而且一个字符串中可能有多个字符,这是一个很小的数字snippet@Floris星号将是相同的(因此在9号和10号之间),但每个星号之间的文本没有设置我知道X12,我感觉到你的痛苦。你为什么要使用正则表达式?什么定义了“你关心的位”?有很多星号,那么你的数字有什么特别之处?是“空格-星号-数字序列-星号-空格”?@AllenG我不必使用正则表达式,但粗体部分前面的字符可以是动态的……而且一个字符串中可能有多个字符,这是一个很小的数字snippet@Floris星号将是相同的(因此在9号和10号之间),但每个星号之间的文字未设置。我知道X12,我感觉到你的痛苦。与我的解决方案非常相似,但你的解决方案更紧凑,并获得我的投票。我暂时不使用我的解决方案,因为我认为对表达式的解释为讨论增添了一些内容。与我的解决方案非常相似,但你的解决方案更紧凑,并获得我的投票。我将离开m我现在不想发言了,因为我认为对这个表达的解释为讨论增添了一些内容。你的发言得到了我对文档的支持,并使用了Rubular以外的内容。:-)我在这两方面都很懒惰。;-)@彼得·拉夫文-谢谢。我最近才发现了regex101.com,但我更喜欢它。他们有一种很好的方式用文字来描述你的表情,并用颜色来显示“什么去了哪里”。非常棒的工具。你的工具得到了我对文档的支持,并使用了Rubular以外的工具。:-)我在这两方面都很懒@彼得·拉夫文-谢谢。我最近才发现了regex101.com,但我更喜欢它。他们有一种很好的方式用文字来描述你的表情,并用颜色来显示“什么去了哪里”。非常棒的工具。