正则表达式捕获两个数字之间的第一个字符串
RegEx Capture First String between Two Numbers
正在尝试提取数字之间的第一个匹配字符串:
例如:
testsfa13.4extractthis8488.9090testssffwwww
ajfafs-sss133.6extractthis887878.222testtest522252.9thismore
到目前为止我有以下内容:
[\d](.*?)[\d]
但是,匹配包括捕获组末尾的数字?任何建议表示赞赏。谢谢。
如果要提取第一个匹配项,可以从锚点 ^
开始,匹配除数字 \D*
之外的任何字符,然后匹配带有可选小数部分的数字。
^\D*\d+(?:[.,]\d+)*(\D+)\d
^
字符串开头
\D*
匹配除数字以外的任何字符 0 次以上
\d+(?:[.,]\d+)*
匹配 1+ 个数字并可选择重复 .
或 ,
和 1+ 个数字
(\D+)
捕获第 1 组,匹配除数字以外的任何字符 1 次以上
\d
匹配一个数字
防止越过换行边界:
^[^\d\n\r]*\d+(?:[,.]\d+)*([^\d\n\r]+)\d
尝试\d([A-Za-z]+)\d
并从返回的对象中获取第一个值
正在尝试提取数字之间的第一个匹配字符串: 例如:
testsfa13.4extractthis8488.9090testssffwwww
ajfafs-sss133.6extractthis887878.222testtest522252.9thismore
到目前为止我有以下内容:
[\d](.*?)[\d]
但是,匹配包括捕获组末尾的数字?任何建议表示赞赏。谢谢。
如果要提取第一个匹配项,可以从锚点 ^
开始,匹配除数字 \D*
之外的任何字符,然后匹配带有可选小数部分的数字。
^\D*\d+(?:[.,]\d+)*(\D+)\d
^
字符串开头\D*
匹配除数字以外的任何字符 0 次以上\d+(?:[.,]\d+)*
匹配 1+ 个数字并可选择重复.
或,
和 1+ 个数字(\D+)
捕获第 1 组,匹配除数字以外的任何字符 1 次以上\d
匹配一个数字
防止越过换行边界:
^[^\d\n\r]*\d+(?:[,.]\d+)*([^\d\n\r]+)\d
尝试\d([A-Za-z]+)\d
并从返回的对象中获取第一个值