Regex 正则表达式选择字符串后的所有数字
我不熟悉正则表达式,我想知道是否有任何方法可以选择匹配字符串后的所有数字 例如: 输入:Regex 正则表达式选择字符串后的所有数字,regex,string,numbers,match,Regex,String,Numbers,Match,我不熟悉正则表达式,我想知道是否有任何方法可以选择匹配字符串后的所有数字 例如: 输入: 重要字符串 abc 100 def 50 ghi jk 10 m 60 不重要的字符串 aa 90 bb 20 作为输出,我想选择所有这些数字:100,50,10,60 我尝试了重要字符串[\w\n]*(\d+),但只得到了60个 非常感谢 在某些文本之间匹配多个匹配的一般PCRE方法是使用基于\G的模式,该模式允许在上一次成功匹配结束时锚定匹配: (?:\G(?!\A)|(?<!\bnot )imp
重要字符串
abc 100
def 50
ghi jk 10
m 60
不重要的字符串
aa 90
bb 20
作为输出,我想选择所有这些数字:100,50,10,60
我尝试了重要字符串[\w\n]*(\d+)
,但只得到了60个
非常感谢 在某些文本之间匹配多个匹配的一般PCRE方法是使用基于
\G
的模式,该模式允许在上一次成功匹配结束时锚定匹配:
(?:\G(?!\A)|(?<!\bnot )important string)(?:(?!not important string)\D)*?\K\d+
或者,为了保持在初始的起始分隔符\u字符串
边界内,将其添加到负前瞻:
(?s)(?:\G(?!\A)|STARTING_DELIMITER_STRING)(?:(?!STARTING_DELIMITER_STRING|END_DELIMITER_STRING).)*?\K\d+
详细信息:
(?:\G(?!\A)|)(?-上一次成功匹配的结束(
)或\G(?!\A)
文本字符序列前面没有重要字符串
+空格非
-除数字((?:(?!非重要字符串)\D)*?
)以外的任何字符,0+次,次数尽可能少,这不是\D
字符序列的起点非重要字符串
-匹配重置运算符\K
-1+位\d+
\G
的模式,该模式允许在上一次成功匹配结束时锚定匹配:
(?:\G(?!\A)|(?<!\bnot )important string)(?:(?!not important string)\D)*?\K\d+
或者,为了保持在初始的起始分隔符\u字符串
边界内,将其添加到负前瞻:
(?s)(?:\G(?!\A)|STARTING_DELIMITER_STRING)(?:(?!STARTING_DELIMITER_STRING|END_DELIMITER_STRING).)*?\K\d+
详细信息:
(?:\G(?!\A)|)(?-上一次成功匹配的结束(
)或\G(?!\A)
文本字符序列前面没有重要字符串
+空格非
-除数字((?:(?!非重要字符串)\D)*?
)以外的任何字符,0+次,次数尽可能少,这不是\D
字符序列的起点非重要字符串
-匹配重置运算符\K
-1+位\d+
/\d+/g
。您可以用您的编程语言检查字符串是否包含重要字符串。编程语言是什么?@WiktorStribiżew yea.。但问题是,此输入是在另一个大文本中,其中也有很多数字,并且/\d+/g将接受所有这些数字。一个d顺便说一句,我使用regex101.com来练习,所以我没有真正使用任何编程语言。然后还有两个问题:1)您将使用什么样的regex风格?(regex101提供3个);2)尾随边界是什么(在重要字符串之后何时停止收集数字)?类似的东西可能会有帮助。@WiktorStribiżew是的,这就是我要找的,谢谢!根据您的输入判断,您可以使用/\d+/g
。您可以用您的编程语言来检查字符串是否包含重要字符串
。编程语言是什么?@WiktorStribiżew是的。。但问题是,这个输入是在另一个大文本,也有很多数字,/\d+/g将包含所有数字。顺便说一句,我使用regex101.com进行练习,所以我没有真正使用任何编程语言。然后还有两个问题:1)您将使用什么regex风格?(regex101提供3个);2)尾部边界是什么(什么时候停止收集重要字符串后的数字)?类似的内容可能会有所帮助。@WiktorStribiżew是的,这就是我要找的,谢谢!