简体   繁体   English

正则表达式在出现特定字符串后获取特定字符

[英]Regex to get specific Character after occurrence of a specific string

I am trying to create a Regex to get a value after 'New Serial Number' 我正在尝试创建一个正则表达式来获取“新序列号”之后的值

Input String : [EXT] EOL Resolved : 343250; Serial Number : OLD123 ; New Serial Number : NEW123; UPS Tracking Number : UPSTRN123; 输入字符串: [EXT] EOL Resolved : 343250; Serial Number : OLD123 ; New Serial Number : NEW123; UPS Tracking Number : UPSTRN123; [EXT] EOL Resolved : 343250; Serial Number : OLD123 ; New Serial Number : NEW123; UPS Tracking Number : UPSTRN123;

I need output to be 'NEW123' 我需要输出为“ NEW123”

Tried : 尝试过:

Match(%K00291;"(?<=New Serial Number :)(.*;)";true)

But I am getting output as : NEW123; UPS Tracking Number : UPSTRN123; 但是我得到的输出为: NEW123; UPS Tracking Number : UPSTRN123; NEW123; UPS Tracking Number : UPSTRN123;

You should use .*? 您应该使用.*? ( *? - zero or more but as few as possible ) instead of .* (which ends up to the last ; ) in order to stop matching at the nearest ; *? -零或多个,但要尽可能 )而不是.* (以最后一个 ;结尾),以便在最近的位置停止匹配; :

 ..."(?<=New Serial Number :)(.*?)(?=;)"...

Finally, if you don't want to include trailing ; 最后,如果您不想包含结尾; into match, let's put it as (?=;) 匹配,让我们将其表示为(?=;)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM