我是正则表达式的新手
我需要从下面的示例文本中计算和提取标记:
AA||CCCCCCCC|||FFFFFFFFFFF
请求第四个令牌我必须得到一个空的“”字符串,请求第六个令牌我必须得到“FFFFFFFFFFFF”
有可能有这样的正则表达式吗?
提前致谢!
PS:对于我用过的令牌计数'\|'
在结果中添加 +1 表示字符串不为空,当然还有另一种更有效的方法可以仅使用正则表达式来做到这一点......
将字符串拆分为|
会更有效,但这也有效。
Code
我们将计数器称为大括号之间的数字{X}
。该计数器从 0 开始。如果它设置为0
,我们会得到1st
元素,如果它设置为5
,我们会得到6th
元素等
请参阅此处使用的正则表达式
^(?:[^|]*\|){5}\K[^|]*
或者,如果\K
您的正则表达式引擎不支持,您可以使用以下内容(第一个捕获组中的结果):
^(?:[^|]*\|){5}([^|]*)
解释
-
^
断言位置位于行的开头
-
(?:[^|]*\|){5}
Match the following exactly 5 times
-
[^|]*
匹配除以下字符外的任何字符|
任意次数
-
\|
Match |
字面上地
-
\K
重置比赛的起点。任何先前消耗的角色将不再包含在最终比赛中
-
[^|]*
匹配除以下字符外的任何字符|
任意次数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)