2
我试图创建一个正则表达式.NET将:.NET正则表达式 - 需要帮助合并“两节”表达式
- A.)提取的混合字符1至4位数字值
- B.)中提取1至3位数的数字IF紧跟正斜杠 '/'
示例=所期望的结果:
- abc1234abc1 = 1234
- abc12345abc1 =无结果
- ABC123/456abc1 = 456
- ABC1234/1234abc1 =无结果
图案(?<!\d)\d{1,4}(?!\d)
结果如下:
- abc1234abc1 = 1234(好)
- abc12345abc1 =否的结果(良好)
- ABC123/456abc1 = 123,456,1(差)
- ABC1234/5678abc1 = 1234,5678,1(差)
该图案\/?[\d]{1,3}
是导致以下:
- ABC123/456abc1 =/456(应该只是456)
- ABC1234/5678abc1 =/567(应resturn没有结果)
我试图把lookarounds围绕上面的图案,以便/ 5678没有返回值,但是当我这样做,无论我根本没有得到值。
我的问题是我需要两个单独的表达式,还是可以在一个表达式中完成?一会是首选,但我不知道如何合并他们..谢谢!
是字符串的'1'部分吗?请参阅[本演示](http://regexstorm.net/tester?p=(%3f%3c!%5b%5cd%2f%5d)(%3f%3cnum%3e%5cd%7b1%2c4%7d)( %3F!%5B%5CD%2F%5D)%7C%2F(%3F%3cnum%3E%5CD%7B1%2C3%7D)(%3F!%5CD)I = abc1234abc%0D%0aabc12345abc%0D%0aabc123 %2f456abc%0D%0aabc1234%2f1234abc)。 –
如果您在末尾abc123/456abc“1”处引用1,否则,我只是将它放在那里作为“混合字符值”的一部分。您提供的演示看起来不错,只是结果不应该包含/但应该是斜杠后面的值(IE只是456而不是/ 456) – Alex
结果不是'Match.Value',而是'Match。组[ “编号”]。Value'。请参阅[此IDEONE演示](http://ideone.com/NP1bSw)。 –