我需要编写一个Perl正则表达式来匹配单词中的数字和字母和数字.示例: test123.我想编写一个只匹配数字部分并捕获它的正则表达式
我正在尝试这个\S*(\d+)\S* ,它只捕获3但不捕获123.
正则表达式原子将尽可能多地匹配.
最初,第一个\S*匹配" test123",但正则表达式引擎必须回溯以允许\d+匹配.结果是:
+------------------- Matches "test12"
| +-------------- Matches "3"
| | +--------- Matches ""
| | |
--- --- ---
\S* (\d+) \S*
Run Code Online (Sandbox Code Playgroud)
所有你需要的是:
my ($num) = "test123" =~ /(\d+)/;
Run Code Online (Sandbox Code Playgroud)
它将尝试匹配位置0,然后位置1,...直到找到一个数字,然后它将匹配尽可能多的数字.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |