-3 java
我混淆了代码背后的逻辑,(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")
它将数字和字母分开,如输入字符串,abc12dc23然后它将它作为输出分割abc 12 dc 23.
我只想解释上面的代码是如何工作的?
这个正则表达式:
(?<=\D)(?=\d)|(?<=\d)(?=\D)
Run Code Online (Sandbox Code Playgroud)
匹配2种模式,如|字符所示:
这种模式:
(?<=\D)(?=\d)
Run Code Online (Sandbox Code Playgroud)
而这种模式:
(?<=\d)(?=\D)
Run Code Online (Sandbox Code Playgroud)
前者在字符串中查找一个位置,该位置在该位置之前有一个非digit(\D)字符,\d后面有一个数字().后者寻找反向发生的位置,前面的数字和后面的非数字.
要以更抽象的方式说这个,正则表达式正在寻找数字 - 非数字边界.
split方法查找模式的所有匹配项,并在找到该字符串时拆分该字符串.
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |