提取数字后跟特定文本
Extract numbers followed by specific text
我是 Regex 的新手,我正在寻找一个 Regex 来提取任何类型的数字(如 23,23a,24-26),这些数字后面紧跟着一个被 ! 包围的文本。
更多说明:
需要匹配数字(简单数字,由破折号分隔的数字范围或数字后跟字母(a,b,c,d,..)),紧跟其自身(忽略逗号)和包围的文本通过 !
例如在下面的文本中,我正在寻找我制作的部分 Italic
; 46-58 !some text! ; , 5 some text, 3-21 , 6-22 some text, 16 some text !some text! ; 46-58 some text, 5 !some text! ; 3-21 , 6-22 some text, 16 some text, some text !some text! ; 46-58 some text, 5 some text, 3-21 ,23a , 6-22 !some text! ;
为了更清楚,我把我感兴趣的文字标红了。
到目前为止我想出了以下正则表达式
\![\w\s]*\!
=> 找到被 !
包围的文本
[a-z]?[\s|,]? [\-|,| | | | | |0-9|-|\d+[\-|a-z]*\d*]*\![\w\s]*\!
=> 这个 select 两个连续 ;
之间的所有内容
\d+[-,]*[a-z]*\d+[a-z]*\s*[,]*
=> 这个select任何一种编号
但到目前为止,我无法将它们组合成 select 我想要的。
如果我理解正确的话,您想要匹配紧接在由 !
符号包围的文本部分之前的模式。我认为确切的答案将取决于要匹配的 pattern 。毕竟它可能不太适合正则表达式。
我创建了与问题中的表达式匹配的 this 示例 (javascript)。
注:
我对要匹配的模式做了一些假设。即,模式以数字开头,只能包含数字、破折号、逗号和字符a
。
我是 Regex 的新手,我正在寻找一个 Regex 来提取任何类型的数字(如 23,23a,24-26),这些数字后面紧跟着一个被 ! 包围的文本。
更多说明: 需要匹配数字(简单数字,由破折号分隔的数字范围或数字后跟字母(a,b,c,d,..)),紧跟其自身(忽略逗号)和包围的文本通过 !
例如在下面的文本中,我正在寻找我制作的部分 Italic
; 46-58 !some text! ; , 5 some text, 3-21 , 6-22 some text, 16 some text !some text! ; 46-58 some text, 5 !some text! ; 3-21 , 6-22 some text, 16 some text, some text !some text! ; 46-58 some text, 5 some text, 3-21 ,23a , 6-22 !some text! ;
为了更清楚,我把我感兴趣的文字标红了。
到目前为止我想出了以下正则表达式
\![\w\s]*\!
=> 找到被 !
[a-z]?[\s|,]? [\-|,| | | | | |0-9|-|\d+[\-|a-z]*\d*]*\![\w\s]*\!
=> 这个 select 两个连续 ;
\d+[-,]*[a-z]*\d+[a-z]*\s*[,]*
=> 这个select任何一种编号
但到目前为止,我无法将它们组合成 select 我想要的。
如果我理解正确的话,您想要匹配紧接在由 !
符号包围的文本部分之前的模式。我认为确切的答案将取决于要匹配的 pattern 。毕竟它可能不太适合正则表达式。
我创建了与问题中的表达式匹配的 this 示例 (javascript)。
注:
我对要匹配的模式做了一些假设。即,模式以数字开头,只能包含数字、破折号、逗号和字符a
。