嘿那里,我正在尝试对字符串执行向后正则表达式搜索,将其划分为3位数组.从AS3 文档中我可以看到,在reg ex引擎中无法向后搜索.
这个练习的目的是将三元组逗号插入到这样的数字中:
10000000 => 10,000,000
Run Code Online (Sandbox Code Playgroud)
我想这样做:
string.replace(/(\d{3})/g, ",$1")
Run Code Online (Sandbox Code Playgroud)
但这是不正确的,因为搜索没有从后面发生,替换$ 1只适用于第一场比赛.
我感觉我会更好地使用循环执行此任务.
更新:
由于AS3不支持前瞻,这就是我解决它的方法.
public static function formatNumber(number:Number):String
{
var numString:String = number.toString()
var result:String = ''
while (numString.length > 3)
{
var chunk:String = numString.substr(-3)
numString = numString.substr(0, numString.length - 3)
result = ',' + chunk + result
}
if (numString.length > 0)
{
result = numString + result
}
return result
}
Run Code Online (Sandbox Code Playgroud) 最近的许多正则表达式问题在查询中都有某种环视元素,对我来说并不是匹配成功所必需的.是否有一些教学资源正在推广它们?我试图找出哪种情况下你会更好地使用积极的前瞻/后退.我可以看到的主要应用是在尝试不匹配元素时.但是,例如,来自最近问题的这个查询有一个简单的解决方案来捕获.*,但为什么要使用后面的外观?
(?<=<td><a href="\/xxx\.html\?n=[0-9]{0, 5}">).*(?=<\/a><span
Run Code Online (Sandbox Code Playgroud)
而这个来自另一个问题:
$url = "www.example.com/id/1234";
preg_match("/\d+(?<=id\/[\d])/",$url,$matches);
Run Code Online (Sandbox Code Playgroud)
什么时候使用积极的环顾四周真的更好?你能举一些例子吗?
我意识到这与基于意见的问题接近,但我认为答案真的很有启发性.正则表达式令人困惑,没有让事情变得更复杂......我已经阅读了这个页面,并且对于何时使用它们而不是它们如何工作的一些简单指南更感兴趣.
感谢所有的答复.除了以下那些,我建议在这里查看m.buettner的好答案.